Escribir un diccionario en línea en lenguaje C
# incluir ltstring.h gt
# incluir ltmalloc.h gt
# incluir ltmath.h gt
#Definición min(A, B)(A lt; b? Respuesta: B)
#Definición max(A, B)(A lt; b? B: A
diccionario de estructura typedef
{
char en[30];
char zh[30];
struct Dict * next
} Dict
int main(void)
{
dict * head = 0;
int stu count = 0; //Cantidad
while(1)
{
Printf("Operandos de entrada: 1: entrada de vocabulario 2: exploración 3: chino inglés 4: inglés-chino 5: eliminar 6: salir: ");
int quest
scanf("d ", ampquest);
scanf(" * [^\n]";
if(quest == 6)break;
si no(quest==1)
{
Dict * new Dict =(Dict *)malloc(sizeof(Dict));
Printf("Ingrese chino: ");
scanf("29s " , new dict- gt;zh);
scanf("*[^\n]";
Printf("Ingrese inglés: ");
scanf("29s", new dict- gt; en);
scanf("*[^\n]";
//Inserte el encabezado de la lista enlazada en mostrar la última incorporación En la parte superior, es fácil ver el efecto.
nuevo dict- gt; next = head;
head = newDict
recuento de estus
}
else if(quest==2)
{
if(head==0)
Printf("¡Nada que decir!\ n ");
Otros
{
Printf("Comenzar a buscar palabras: \ n ");
mientras(1)
int st=0, en=min(st 10, recuento de estu);
{
Printf ("Examinar: d a d palabras \n ", st 1, en);
Dict * stu = head
for(int I = 0; i ltST; i)
{
Stu figura = st - gt; siguiente;
}
for(int i = st; i lten; i)
{
Printf("Chino: sInglés: s\n ", stu- gt; Bueno, Stu- gt; zh);
Stu=Stu- gt Siguiente;
} p>
Printf("Número de operación de entrada: 1 página hacia atrás; avance 2 páginas; -1 salida:
int squest
scanf("d ", ampsquest );
scanf("*[^\n]";
if(squest==1)
{
si (en! = recuento de estudiantes)ST = en;
}
si no (squest==2)
{
st =max(0, ST-10);
}
si no(squest = =-1)break;
en=min(st 10, recuento de cosas);
}
}
}
else if(tarea= =3 ||Tarea==4 || Task==5)
{
char a[30];
If(quest==3) printf("Ingrese palabras en chino:") ;
Else if(quest==4) printf("Ingrese palabras en inglés:");
Else if(quest== 5) printf("Ingrese la palabra para eliminarse (en chino e inglés): ");
scanf("29s ", a);
scanf("*[^\n ]";
Dict * stu = head
dict * lst stu = 0;
int flag = 0;
Y ( Stu! = 0 amperios ampflag==0)
{
if(quest==3)
{
if(strcmp(a , stu- gt; zh)==0)
{
Printf("Inglés: s\n ", stu- gt; en);
bandera = 1;
}
}
si no(quest==4)
{
if(strcmp(a,stu- gt;
en)==0)
{
Printf("El chino es: s\n ", stu- gt; zh);
flag = 1;
}
}
si no(quest==5)
{
if(strcmp( a, stu- gt; en) == 0 || strcmp (a, stu- gt; zh) == 0)
{
stu count-;
if(lststu!=0)
lst stu- gt; next = stu- gt siguiente
Otro
head = stu- gt; ; Siguiente;
Printf("¡Eliminar! \ n ");
bandera = 1; >
lststu = stu
stu=stu-gt; siguiente;
}
if (bandera == 0)
{
Printf("¡Palabra no encontrada! \ n ");
}
}
}
Devuelve 0;
}
Vea si puede ejecutar. Si hay nuevas necesidades, puedo seguir escribiendo. El código debe ser muy claro. Si no entiendes algo te lo puedo explicar. Las preguntas son bienvenidas.