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.=)