Cosa non va nel programma[C]

fk16
Ragazzi ho un problema col seguente programma, per favore mi potete dare una mano?
/*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
yoshiharu
"fk16":

  if(vet[i].cognome[i] < vet[j+1].cognome[i]){
    ...
  }           



Potresti spiegare questa condizione?
Che cosa dovrebbe fare questa if?

fk16
appost ho già risolto. Comunque grazie del tuo aiuto.=)

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.