Necesito ayuda para terminar mi programa

Iniciado por bmillar, 4 Agosto 2018, 22:00 PM

0 Miembros y 1 Visitante están viendo este tema.

bmillar

hola amigos, tengo que realizar el ordenamiento alfabetico de diferentes maneras,ascendente, descendente, por su largo y con mayusculas.
la estructura general la tengo, lo que no puedo lograr es realizar los ordenamientos llamandalos desde sub rutinas.
les dejo el programa para que lo analicen

#include<stdio.h>

char nombres[30][30];


/* compara dos strings caracter por caracter.
Implementación manual de strcmp */

int strcmp_arry(char *src1, char *src2){   //espera dos punteros a char y compara caracter a caracter.
    int i=0;
    while((src1!='\0') || (src2!='\0')){
        if(src1 > src2)
            return 1;
        if(src1 < src2)
            return -1;
        i++;
        }
    return 0;
   }

void ordenaAlfabetico(int n)
{
   int i,j,aux;
   char nombres[30][30]; // es una prueba esta parte
     for(i=0;i<n;i++){
   for(j=0;j<n-1;j++){
      comp = strcmp( nombres[j], nombres[j+1] );
      if(comp > 0){
         strcpy(aux,nombres[j]);
         strcpy(nombres[j],nombres[j+1]);
         strcpy(nombres[j+1],aux);
      }
   }
}
   
}
void ordenaAlfabetico2(int n){
   
   
}
void ordenaAlfabeticoR(int n){
   
   
}
void ordenaLargo(int n){
   
   
}
void despliegaListado(int n){
    int i;
   
    for(i=0;i<n;i++){
        printf("Sujeto [%d] : %s",i, nombres);
        }   
    }


int main( ){
/* Puedes añadir tus propias variables si las requieres */
int n,i,j,opcion=1;
/* Ingreso de nombres */
printf("Ingrese el tamaño del listado:");
scanf("%d",&n);   
printf("Ingrese los nombres a la lista :\n");
for(i=0;i<n;i++){
    printf("Sujeto [%d] : ",i);
    scanf("%s",nombres);
    }
   
while (opcion>0){
    printf("1) Ordena los nombres alfabeticamente\n");
    printf("2) Ordena los nombres AlFaBeTiCaMeNTe\n");
    printf("3) Ordena los nombres alfabeticamente por su última letra\n");
    printf("4) Ordena los nombres por longitud\n");
    printf("0) Terminar\n");
   
    printf("Opcion : ");
    scanf("%d",opcion);
   
    if(opcion==1){
        ordenaAlfabetico(n);
        }
    else if(opcion==2){
        ordenaAlfabetico2(n);
        }
    else if(opcion==3){
        ordenaAlfabeticoR(n);
        }
    else if(opcion==4){
        ordenaLargo(n);
        }
/* despliegua el listado de nombres para mostrar el resultado */
    despliegaListado(n);
    }
   
return 0;
}