Cosa non va nel programma[C]
Ragazzi ho un problema col seguente programma, per favore mi potete dare una mano?
Se metto tre cognomi non me li stmpa in ordine
/*Scrivere il codice di una funzione che permetta di ordinare un vettore di strutture "Studente" in funzione del campo cognome*/ #include<stdio.h> #include<stdlib.h> #include<string.h> #define MAX_LEN 11 #define MAX 3 typedef struct studente{ char cognome[MAX_LEN]; }STUDENTE; STUDENTE vet[MAX]; void sort(STUDENTE*); void leggi(STUDENTE*); void stampa(STUDENTE*); int main(){ leggi(vet); sort(vet); stampa(vet); printf("\n"); system("pause"); return 0; } void leggi(STUDENTE vet[MAX]){ int i,j; printf("Inserire i cognomi\n"); for(i=0;i<MAX;i++){ scanf("%s",vet[i].cognome); } return; } void sort(STUDENTE vet[MAX]){ int i,j,k,val; STUDENTE temp[MAX]; for(i=0;i<MAX;i++){ for(j=i;j<(MAX-1);j++){ if(vet[i].cognome[i] < vet[j+1].cognome[i]){ for(k=0;k<MAX_LEN;k++){ temp[i].cognome[k]=vet[i].cognome[k]; vet[i].cognome[k]=vet[j+1].cognome[k]; vet[j+1].cognome[k]=temp[i].cognome[k]; }}}} return; } void stampa(STUDENTE vet[MAX]){ int i; for(i=0;i<MAX; ++i){ printf("[%s] ", vet[i].cognome); } return; }
Se metto tre cognomi non me li stmpa in ordine
Risposte
"fk16":
if(vet[i].cognome[i] < vet[j+1].cognome[i]){ ... }
Potresti spiegare questa condizione?
Che cosa dovrebbe fare questa if?
appost ho già risolto. Comunque grazie del tuo aiuto.=)