Oppure

Loading
14/04/08 13:57
drelq
Ciao...sono nuovo.
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
14/04/08 14:05
pierotofy
Postato originariamente da drelq:
E' sbagliato, qualcuno riesce a mettermelo a posto?


Cominciamo con un passo alla volta: in che punto è sbagliato? Il programma si compila? I risultati sono sbagliati?
Il mio blog: piero.dev