Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    {C} Problemi con il return

    codice:
    #include<stdio.h>
    #include<stdlib.h>
    
    struct StudPia{
           int codPiani;
           int NPiani;
           int Matr;
           int Esame;};
           
    struct Stud {
           int Matr;
           char Cogn[15];
           char Nome[10];
           int Giorno;
           int Mese;
           int Anno;
           int AnCo;
           char Reca[40];
           char email[50];
           int Studi;};
          
    struct Ins {
           int CD_Ins;
           char Nome[40];
           int Anno;
           int Sem;
           int CFU;
           int Prop;};
           
    void Piano();
    int controlloMatr(int Matricola,FILE *Studenti,int Codice,struct Stud bianca);
    int controlloEsame(FILE *Insegnamento,struct Ins bianca2,int Esa,int CFUV);
    
    int controlloMatr(int Matricola,FILE *Studenti,int Codice,struct Stud bianca)
    {
           if ((Studenti = fopen("Studente.dat", "rb+")) == NULL){
           printf("\nNon posso aprire il file di input.\n");}                   
           else
               
               printf("Dammi la matricola da cercare\n");
                  scanf("%d",&Matricola);
                  fseek(Studenti, (Matricola-1)*sizeof(struct Stud), SEEK_SET);
                  fread(&bianca, sizeof(struct Stud),1,Studenti);
                  if(bianca.Matr!=0){
                                     Codice=bianca.Studi;}
                  else
                      printf("La Matricola non esiste\n");
           
           fclose(Studenti);
    
    return Matricola,Codice;
    }
    
    int controlloEsame(FILE *Insegnamento,struct Ins bianca2,int Esa,int CFUV)
    {
     if ((Insegnamento = fopen("Insegnamenti.dat", "rb+")) == NULL)
        printf("\nNon posso aprire il file di input.\n");                         
     else
         printf("Immetti l'esame che vuoi sostenere\n");
         scanf("%d",&Esa);
         fseek(Insegnamento, (Esa-1)*sizeof(struct Ins), SEEK_SET);
         fread(&bianca2, sizeof(struct Ins),1,Insegnamento);
         if(bianca2.CD_Ins!=0){
                      CFUV=bianca2.CFU;
                      printf("%d%d",CFUV,bianca2.CFU);}
         else
             printf("L'insegnamento non esiste\n");   
    fclose(Insegnamento);
    
    return CFUV;
    }
    
    void Piano()
    {
         FILE *Piani;
         int i;
         struct StudPia bianca3={0,0,0,0};
         if ((Piani=fopen("Piani Studio.dat","wb+"))==NULL){
            printf("non se po apri il file\n");}
         else{
              for(i=0;i<20;i++){
                              fwrite(&bianca3, sizeof(struct StudPia),1,Piani);}
         fclose(Piani);}}
         
    void Creazione()
    {
     FILE *Studenti;
     FILE *Insegnamento;
     FILE *Piani;
     struct StudPia bianca3={0,0,0,0};
     struct Ins bianca2={0,"",0,0,0,0};
     struct Stud bianca={0,"","",0,0,0,0,"",""};
     int scelta,Matricola,Esa,propedeutico,Codice,i,CFU,CFUV;
     scelta=Matricola=Esa=propedeutico=Codice=i=CFU=CFUV=0;
     do{
        controlloMatr(Matricola,Studenti,Codice,bianca);
        if(Codice!=0)
                        do{
                           controlloEsame(Insegnamento,bianca2,Esa,CFUV);
                           CFU=CFU+CFUV;
                           printf("%d",CFU);
                           }while(CFU<140);
        }while(Matricola!=0);
    
    }                                                             
    int main()
    {
     int scelta;
        
     while(scelta!=5){
                       printf("\n\n1 Creare un nuovo File Piani di studio 'Attenzione cancellerete quello vecchio");
                       printf("\n2 Cancellare un Piano di studi");
                       printf("\n3 Aggiungere uno Studente");
                       printf("\n4 stampa Piani di studio");
                       printf("\n5 per uscire\n");
                       scanf("%d",&scelta);
                       switch(scelta){ 
                                        case 1:
                                             Piano();
                                             break;
                                              
                                        case 2:
                                             
                                             break;
                                                   
                                        case 3:
                                             Creazione();
                                             break;
                                              
                                        case 4:
                                             break;
                                          
                                        case 5:
                                             break;
                                              
                                        default:
                                                printf("La scelta non è corretta\n");
                                                break;}}   
    system("PAUSE");}
    questo programma e un pezzo di uno piu ampio che sto realizzando solo che ho dei problemi con l return ad esempio quando legge i CFU da un'altro file precedentemente creato dovrebbe passare i CFUV alla funzione principale solo che gli ritorna sempre 0 lo sto esaminando da 1 giorno solo che non riesco a capire dove l'errore qualcuno puo darmi una dritta grazie

  2. #2
    risolto...

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    813
    Originariamente inviato da Donnie85Darko
    risolto...
    e come?
    cmq se spiegassi un po' meglio il problema la prossima volta sarebbe eccezionale.
    Nell'anno 1968 è bastata la potenza di due Commodore 64 per lanciare con successo una navicella sulla Luna; nell'anno 2007 ci vogliono la potenza di un processore quad core 3.30 GHz e 3 Gb di RAM (requisiti minimi ufficiali) per utilizzare Windows Vista. Qualcosa deve essere andato storto!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.