14/04/08 13:57
drelq
Ciao...sono nuovo.
Ho bisogno urgente per questo programma:
E' sbagliato, qualcuno riesce a mettermelo a posto?
Aggiustato il tag code
Ho bisogno urgente per questo programma:
E' sbagliato, qualcuno riesce a mettermelo a posto?
/*Programma per la lettura dal file stu708.txt di una lista di nomi e date di nascita di una classe di 111 studenti. Il programma inoltre effettua l'ordinamento della lista degli studenti per nome o data di nascita secondo il desiderio dell'utente*/ #include <stdio.h> #include <stdlib.h> #include <time.h> #include <math.h> /*funzione per creare casualmente le date mancanti*/ void create_data(int lista[], int n) { int i ,stime, ltime; ltime=time(NULL); stime=ltime/2; srand(stime); i=0; while (i<=n) { lista[i]=rand()%n; i++; } } /*la funzione swap realizza lo scambio dei elementi*/ void swap(int *x,int *y) { int temp; temp = *x; *x = *y; *y = temp; } /*funzione per ordinare a seconda del campo scelto gli studenti*/ void bubble_sort(int lista[],int n) { int i,j; for(i=0;i<(n-1);i++) for(j=0;j<(n-(i+1));j++) if(lista[j] > lista[j+1]) swap(&lista[j],&lista[j+1]); } struct Classe{ char Cognome; char Nome; int Giorno; int Mese; int Anno; }; main (int argc, char *argv[]) { struct Classe d; char t,n,c ,g ,m ,a; FILE *in,*out; in=fopen("stud708","r"); if(in==NULL){ printf("il file non puo' essere aperto"); exit(1); } out=fopen("list_stud_ord","w"); if(out==NULL){ printf("il file non puo' essere aperto"); exit(1); } fscanf(in, "%s,%s,%d,%d,%d", &d.Cognome, &d.Nome, &d.Giorno, &d.Mese, &d.Anno); if(d.Giorno==NULL && d.Mese==NULL && d.Anno==NULL) create_data(d.Giorno,111); create_data(d.Mese,111); create_data(d.Anno,111); printf("Seleziona il tipo di ordinamento, premi n se si desidera per nome, c per cognome,g per giorno,m per mese e a per anno: "); scanf("%s", &t); switch (t) case (t==n): bubble_sort(d.Nome,111); break; case (t==c): bubble_sort(d.Cognome,111); break; case (t==g): bubble_sort(d.Giorno,111); break; case (t==m): bubble_sort(d.Mese,111); break; case (t==a): bubble_sort(d.Anno,111); break; } fprintf(out,"%s, %s, %d, %d, %d"); fclose(in); fclose(out); return 0; }
Aggiustato il tag code
Ultima modifica effettuata da pierotofy 14/04/08 14:04
aaa