c importar diccionario
# incluir & ltstring.h & gt
# incluir & ltmalloc.h & gt
# incluir & ltmath. h & gt
#Definir min(A,B)(A<b? Respuesta:B)
#Definir max(A,B)(A<b ? B:A
diccionario de estructura typedef
{
char en【30】;
char zh【30】;
p>struct Dict * next
} Dict
int main(void)
{
dict * head = 0 ;
int stuccount = 0; //Cantidad
while(1)
{
Printf("Operando 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]);
si (búsqueda == 6) romper;
si no (búsqueda == 1)
{
Dict * new Dict = (Dict *) malloc (sizeof (Dict));
Printf ("Ingrese chino: "); /p>
scanf("% 29s",new dict-& gt;zh);
scanf("%*[^\n]);
Printf( "Por favor ingrese inglés: ");
scanf ("% 29s", new dict-& gt; en
scanf ("%*[^\n]);
//Inserte el encabezado de la lista vinculada para que el último contenido agregado se muestre 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")
Otro
{
Printf("Empezar a navegar por palabra:\n");
mientras(1)
int st=0, en=min(ST+10,stuccount);
{
printf("Explorar:% d a % d palabras\n", st +1,en);
Dict * stu = head
for(int I = 0;i<ST;++i)
{ p >
Stu=Stu->next;
}
for(int I = st;i<en;++i)
{ p>
Printf ("Chino: %sInglés: %s\n", stu-& gt; Bueno, stu-& gt; zh);
Stu=Stu->Siguiente;
}
Printf("Ingrese el número de operación: 1 hacia atrás; 2 páginas hacia adelante; -1 salida: "
int squest
);scanf ("% d", & ampsquest);
scanf ("%*[^\n]);
p>if (squest == 1)
{
if (es!= número de estudiantes) ST = es;
}
si no (squest == 2)
{
ST = max (0, ST-10);
}
si no (squest = =-1) descanso ;
en = min (ST+10, estuco);
}
} p>
}
else if (misión == 3 | | misión == 4 | | misión == 5)
{
char a 【30】;
if ( quest == 3) printf ("Ingrese el vocabulario chino: ");
else if (quest == 4) printf ("Ingrese la palabra en inglés: ");
else if (quest == 5) printf ("Ingrese la palabra que desea eliminar (tanto en chino como en inglés):
scanf ("% 29s", a);
scanf("%*[^\n]);
Dict * stu = head
dict * lst stu = 0 ;
int flag = 0 ;
Y (¡Stu! = 0 & amp& ampflag==0)
{
si (misión == 3)
{
si (strcmp( a,stu->zh)=0)
{
Printf("Inglés: %s\n",stu->en);
bandera = 1;
}
}
si no (misión == 4)
{
if(strcmp(a,stu->en)=0)
{
p>
Printf ("El chino es: %s\n", stu-& gt; zh
flag = 1; >}
si no (quest == 5)
{
if (strcmp(a,stu->en) == 0 | | strcmp (a,stu->zh)=0)
{
stuccount-;
if (lst stu!=0)
lst stu-& gt; siguiente = stu-& gt;
Otro
head = stu-& gt; "¡Eliminado!\n");
flag = 1;
}
}
lststu = stu
Stu=Stu->Siguiente;
}
if (flag==0)
{
Printf(" ¡Palabra no encontrada!\n ");
}
}
}
Devuelve 0;
}
Vea si puede 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.