Diccionario chino
# incluir ltstring.h gt
# incluir ltmalloc.h gt
# incluir ltmath.h gt
#Definir min(A,B)(Alt;b?Answer:B)
#Definir max(A,B)(Alt;b?B:A
typedef diccionario de estructura
{
char en【30】;
char zh【30】;
struct Dict * next< /p >
} Dict
int main(void)
{
dict * head = 0
int stuccount = 0; ; //Cantidad
while(1)
{
Printf("Operandos de entrada: 1: Entrada de vocabulario 2: Explorar 3: Chino-inglés 4: Inglés-chino 5: Eliminar 6: Salir: ");
int quest
scanf (" d", ampquest);
scanf("*[ ^\n]);
if (búsqueda == 6) romper
si no (búsqueda == 1)
{
Dict * new Dict = (Dict *) malloc (sizeof (Dict));
Printf ("Ingrese chino:
scanf (" 29s ", nuevo dict- gt;zh);
scanf("*[^\n]);
Printf("Ingrese inglés: ");
scanf ("29s", new dict- gt; en);
scanf("*[^\n]);
//Inserta el encabezado de la lista enlazada para que el último agregado El contenido se muestra en la parte superior, lo que facilita ver el efecto.
nuevo dict- gt; next = head
head = newDict
stuccount;
}
else if (quest == 2)
{
if (head == 0)
Printf("¡Nada que decir!\n"); p >
Otro
{
Printf("Comenzar a navegar por palabra:\n");
mientras(1)
int st=0,en=min(st 10,stuccount);
{
printf("Buscar: d a d palabras\n",st 1,en);
Dict * stu = cabeza
for(int I = 0; iltST; i)
{
Stu = Stu - gt ; siguiente;
}
for (int i = st; i lten; i)
{
Printf( "Chino: sInglés: s\n", stu- gt; Bueno, Stu- gt; zh);
Stu=Stu-gt; next;
}
Printf ("Ingrese el número de operación: 1 página hacia atrás; avance 2 páginas; -1 salida:
int squest
scanf ("d", ampsquest);
scanf("*[^\n]);
if (squest == 1)
{ p>
if (en! = stu contar) ST = en;
}
si no (squest == 2)
{ p>
ST = max (0, ST-10);
}
si no (squest = =-1) break;
en = min(ST 10,stuccount);
p>}
}
}
si no(búsqueda == 3 | | búsqueda == 4 | | búsqueda == 5)
{
char a【30】;
if (quest == 3) printf ("Ingrese vocabulario chino: ");
else if (quest == 4) printf ("Ingrese la palabra en inglés: ");
else if (quest == 5) printf ("Ingrese la palabra que desea eliminar (ambas). Chino e inglés): ");
scanf (" 29s ", a);
scanf ("*[^\n]);
Dict * stu = cabeza
dict * lst stu = 0;
int flag = 0
Y (Stu! = 0 amperios ampflag==0)
{
if (quest == 3)
{
si (strcmp(a , stu- gt; zh) = 0)
{
Printf("Inglés: s\n", stu- gt;en); = 1;
}
}<
/p>
else if (quest == 4)
{
if (strcmp(a,stu- gt; en) = 0)
{
Printf ("El chino es: s\n", stu- gt; zh
flag = 1;
}
);}
else if (quest == 5)
{
if (strcmp(a,stu- gt; en) == 0 | | strcmp (a, stu- gt; zh) = 0)
{
stuccount-;
if (lst stu!=0)
lst stu- gt; next = stu- gt;
Otro
head = stu- gt;
Printf (" ¡Eliminado!\n");
bandera = 1;
}
}
lststu = stu
Stu=Stu-gt;Siguiente;
}
if (flag==0)
{
Printf("Palabra ¡no encontrado!\n ");
}
}
}
Devuelve 0;
}
A ver si puedes correr. Si hay nuevas necesidades, puedo seguir escribiendo. El código debe ser muy claro. Si no entiendes nada te lo puedo explicar. Las preguntas son bienvenidas.