#include "stdio.h" #include "conio.h" #include "stdlib.h" #include "string.h" #define FIL 10 #define COL 20
int vector_vacio(char nombres[][COL]); void carga_aleatoria(char nombres[][COL]); void buscar_mayor(char nombres[][COL]); void buscar_menor(char nombres[][COL]); void buscar_igual(char nombres[][COL]); void mayor_menor(char nombres[][COL]); void menor_mayor(char nombres[][COL]); char menu();
int main(void) { char opcion, seguir = 's', nombre[FIL][COL]; int i;
do { system("cls"); opcion = menu();
switch(opcion) { case 'a' : case 'A' : carga_aleatoria(nombre);break;
case 'b': case 'B': {if(vector_vacio(nombre) > 0) buscar_mayor(nombre); else printf("Primero cargar vector: ");}
break; case 'c' : case 'C' : {if(vector_vacio(nombre) > 0) buscar_menor(nombre); else printf("Primero cargar vector: ");}
break; case 'd': case 'D':{ if(vector_vacio(nombre) > 0) buscar_igual(nombre); else printf("Primero cargar vector: ");}
break; case 'e': case 'E' : {if(vector_vacio(nombre) > 0) mayor_menor(nombre); else printf("Primero cargar vector: ");}
break; case 'f': case 'F' :{if(vector_vacio(nombre) > 0) menor_mayor(nombre); else printf("Primero cargar vector: ");}
break; case 'g' : case 'G' : {printf("\n Salir"); }break;
default : break; }
if(opcion == 's' || opcion == 'S') seguir = 'n'; else { printf("\n\nDesea Continuar : "); fflush(stdin); scanf("%c",&seguir); } }while(seguir == 's' || seguir == 'S');
getch();
return 0;
}
void carga_aleatoria(char nombres[][COL]) { int pos; char seguir = 's';
// cargamos aleaoriamente
do { printf("Ingrese posicion para gaurdar datos en vector: "); scanf("%d",&pos);
if(pos > 0 && pos <= 10 && strlen(&nombres[pos - 1][0]) == 0) // posciones validas, y hace q no guarde en misma posicion ya gaurdada antes { printf("Ingrese nombre entero para guardar en vector: "); gets(&nombres[pos - 1][0]);
printf("Desea Ingresar otro datos al vector S/N? : "); fflush(stdin); scanf("%c",&seguir); } else { if(strlen(&nombres[pos-1][0]) != 0) { printf("Posicion ya ingresada.Volver a ingresar \n\n"); } else { printf("Ingresar posicion entre 0 y 10 \n\n"); } }
if((seguir == 'n' || seguir == 'N') && vector_vacio(nombres) == 0) { printf("\nPor favor antes ingresar auqnue sea un dato en vector: "); fflush(stdin); seguir = 's'; }
}while(seguir == 's' || seguir == 'S'); }
/////////////////////// // determina si vector esta vacio o no, si retorna 0 esta vacio si es mayor a cero tiene carga /////////////////////////////////////////////////////////////// int vector_vacio(char nombres[][COL]) { int i, vacio = 0; char *nom;
nom = &nombres[0][0];
for(i = 0; i < 10; i++) { if(strlen(nom) > 0) vacio++; }
return vacio; }
///////// buscar mayor elemento //////////////////////
void buscar_mayor(char nombres[][20]) { char *mayor, *nom; int i, varios = 1, pos;
nom = &nombres[0][0];
mayor = nom;
for(i = 1; i < FIL; i++) { if(stricmp(nom + i*COL,mayor) > 0) { strcpy(mayor,nom + i*COL); pos = i; varios = 1; } else { if(stricmp(nom + i*COL,mayor) == 0) varios++; } }
printf("El NOmbre mayor es : %s \n\n", mayor);
if(varios > 1 ) { printf("Y aparece en las posiones: ");
for(i = 0; i < 10; i++) { if(stricmp(nom + i*COL,mayor) == 0) printf("%d,",i+1); } } else { printf("Y aparece en la posicion: %d", pos); }
}
/////////// Buscar MEnor ///////////////////////////
void buscar_menor(char nombres[][COL]) { char *menor, *nom; int i, varios = 1, pos;
nom = &nombres[0][0];
menor = nom; for(i = 1; i < 10; i++) { if(stricmp(nom + i+COL,menor) < 0) { strcpy(menor,nom + i*COL); pos = i; varios = 1; } else { if(stricmp(nom + i*COL,menor) == 0) varios++; } }
printf("El NOmbre menor es : %s \n\n", menor);
if(varios > 1 ) { printf("Y aparece en las posiones: ");
for(i = 0; i < 10; i++) { if(stricmp(nom + i*COL,menor) == 0) printf("%d,",i+1); } } else { printf("Y aparece en la posicion: %d", pos); }
}
////////////////// BUscar mismo numero en vector //////////////////////
void buscar_igual(char nombres[][20]) { char *igual, *nom; int i, varios = 0, pos;
nom = &nombres[0][0];
printf("Ingrese nombre a buscar"); fflush(stdin); gets(igual);
for(i = 0; i < 10; i++) { if(stricmp(nom + i*COL,igual) == 0) { pos = i; varios++; } }
printf("El numero menor es : %s \n\n", igual);
if(varios > 1 ) { printf("Y aparece en las posiones: ");
for(i = 0; i < 10; i++) { if(stricmp(nom + i*COL,igual) == 0) printf("%d,",i+1); } } else { if( varios == 1) printf("Y aparece en la posicion: %d", pos); else printf("No esxiste %s en el vector. ",igual); }
}
//////////////// Ordenar mayoy a menor ///////////////
void mayor_menor(char nombres[][COL]) { char *nom,*aux; int i,j;
nom = &nombres[0][0];
for(i = 0; i< 10-1; i++) for(j = i+1 ; j < 10; j++) if(stricmp(nom + i*COL,nom + j*COL) > 0) { strcpy(aux,nom + i*COL); strcpy(nom + i*COL,nom + j*COL); strcpy(nom + j*COL,aux); }
printf("OrdenAdo de mayor a menor: "); for(i = 0; i < 10; i++) printf("%s",nom + i*COL); }
/////////////////// ORdenar menor a mayor ///////////////
void menor_mayor(char nombres[][COL]) { char *nom,*aux; int i,j;
nom = &nombres[0][0];
for(i = 0; i< 10-1; i++) for(j = i+1 ; j < 10; j++) if(stricmp(nom + i*COL,nom + j*COL) > 0) { strcpy(aux,nom + i*COL); strcpy(nom + i*COL,nom + j*COL); strcpy(nom + j*COL,aux); }
printf("OrdenAdo de menor a mayor: "); for(i = 0; i < 10; i++) printf("%s",nom + i*COL); }
char menu() { char opcion =' ';
do { printf("Ingrese una opcion:\nA_Carga de Vector \nB_Buscar mayor\nC_BUscar menor\nD_Buscar un elemento\nE_Mayor a menor\nF_Menor a mayor\nS_Salis\n\n"); fflush(stdin); scanf("%c",&opcion); }while (opcion!= 'a' && opcion!= 'A' && opcion!= 'b' && opcion!= 'B' && opcion!= 'c' && opcion!= 'C' && opcion!= 'd' && opcion!= 'D' && opcion!= 'e' && opcion!= 'E'&& opcion!= 'f' && opcion!= 'F' && opcion!= 's' && opcion!= 'S');
return opcion; }
|