Código
#include <stdio.h> #include <string.h> #define N 10000 typedef struct traductor{ char espanol[20]; char ingles[20]; int num; }traductor; traductor T[N]; traductor Auxi; void CARGA(struct traductor T[N], int *i){ if(archivo1 == NULL){ return; } *i=*i+1; } } int busqueda_dicotomica (struct traductor T[N], int *i, char pal_espanol[21]) { int min, max, medio; char palabra; min=0; max= *i-1; medio= (min + max)/2; max=medio-1;} else{ min=medio+1;} medio= (min+max)/2; //fin si }//fin mientras return (medio); //se encontro la nueva palabra en el listado else return -1; //no se encontro la palabra en el listado //finsi }//fin busqueda dicotomica int MENU(){ int op; while(op<0 || op>2){ } } int MENU1(){ char w; while(w!='t' && w!='a' && w!='m' && w!='v'){ } } int MENU2(){ char q; while(q!='t' && q!='a' && q!='m' && q!='v'){ } } void tradu(int opc, int *i) { int p, j, temp,des,band1,band,medio; char aux[20], la[20]; CARGA(T, &i); temp = 0; cambio (aux); if(opc==1){ band=0; while(band==0){ for (p=0 ; p<*i; p++) { if(j==0){ T[p].num=T[p].num+1; band++; } } } if(band!=0){ if(des==1){ T[*i].num=0; *i=*i+1; } } } else { band1=0; while(band1==0){ medio=busqueda_dicotomica(T, &i, aux); if (j == 0) { band1++; T[medio].num=T[medio].num+1; } } if(band!=0){ if(des==1){ T[*i].num=0; *i=*i+1; } } } } void cambio (char palabra[20]) { int i; for(i=0 ; i<N ; i++){ if (palabra[i] == '\n'){ palabra[i] = '\0'; } } } void Agregar (int opc, int *i){ char Npal, la; int p, j,bandera,bandera1,x,c,y,posicion,maximo; CARGA (T, &i); if (opc ==1){ bandera==0; for(p=0 ; p<*i; p++){ if(j==0){ bandera++; } } if(bandera!=0){ T[*i].num=0; *i=*i+1; } } if (opc == 2){ bandera1=0; for (c=0 ; c<*i; c++) { if(j==0){ bandera1++; } } if(bandera1!=0){ T[*i].num=0; *i=*i+1; } } //ordenamiento for(x=0;x<*i-1;x++){ maximo= T[x].num; posicion=x; for(y=x+1;y<*i;y++){ if(T[x].num >maximo){ maximo=T[x].num; posicion=y; } } Auxi=T[posicion]; T[posicion]=T[x]; T[x]=Auxi; } } void MasBuscada(int i){ int x,c,y,posicion,maximo; for(x=0;x<i-1;x++){ maximo= T[x].num; posicion=x; for(y=x+1;y<i;y++){ if(T[x].num >maximo){ maximo=T[x].num; posicion=y; } } Auxi=T[posicion]; T[posicion]=T[x]; T[x]=Auxi; } for(c=0;c<10;c++){ } } int main(void){ struct traductor T[N]; int opc,i=0; char men1,men2; CARGA(T,&i); opc=MENU(); while(opc!=0){ switch(opc){ case 1: men1=MENU1(); while(men1!='v'){ switch(men1){ case 't': tradu(opc,&i); break; case 'a': Agregar (opc, &i); break; case 'm': MasBuscada(i); break; } men1=MENU1(); } break; case 2: men2=MENU2(); while(men2!='v'){ switch(men2){ case 't': tradu(opc,&i); break; case 'a': Agregar (opc, &i); break; case 'm': MasBuscada(i); break; } men2=MENU2(); } break; } opc=MENU(); } return 0; }
MOD: El código debe estar publicado entre etiquetas de Código GeSHi