Ho un file esistente su cui ci sono cognome nome matricola degli studenti.
Inserisco i dati in uno struct.Inserisco i voti e aggiorno lo struct.
Il problema e che devo poi ordinare per voto,ma non lo so fare.
riporto il programma:
codice:#include<stdio.h> #include<string.h> #include<stdlib.h> #define max 50 struct classe { char cognome[20],nome[20]; int matricola,voto; }; int inseriscidati(FILE*,struct classe*); void inseriscivoti(FILE*,struct classe*,int); void ordinanum(FILE*,struct classe*,int); void main() { int n; struct classe elettrica[max]; FILE*fp1,*fp2; fp1=fopen("studenti.txt","r+"); fp2=fopen("num.txt","w+"); if(fp1==NULL) printf("il file non esiste!"); else { n=inseriscidati(fp1,elettrica); rewind(fp1); inseriscivoti(fp1,elettrica,n); ordinanum(fp2,elettrica,n); } } int inseriscidati(FILE*fp1,struct classe*elettrica) { int n=0; while(fscanf(fp1,"%s %s %d",elettrica[n].cognome,elettrica[n].nome,&elettrica[n].matricola)!=EOF) n++; return n; } void inseriscivoti(FILE*fp1,struct classe*elettrica,int n) { int i; printf("inserire voti alla classe:\n"); for(i=0;i<n;i++) { printf("inserisci voto di %s %s = ",elettrica[i].cognome,elettrica[i].nome); scanf("%d",&elettrica[i].voto); fprintf(fp1,"%s %s %d %d \n",elettrica[i].cognome,elettrica[i].nome,elettrica[i].matricola,elettrica[i].voto); } }

Rispondi quotando


