Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    142

    [C++] Problemino!!

    ho scritto questo codice sorgente c++ funziona ma solo che l acquisizione di piu alunni non la fa ne fa solamente una come posso risolvere? grazie:
    codice:
    #include <iostream>
    #include <stdlib.h>
    #include <string.h>
    
    using namespace std;
    
    typedef char Tstring20[21];
    typedef char Tstring25[26];
    typedef char Tstring15[16];
    typedef float tvettfloat[4];
    typedef char vuoto[1];
    
    struct Talunno{
        Tstring20 nome;
        Tstring25 cognome;
        Tstring15 classe;
        float  scritto1quad;
        float  orale1quad;
        float  pratico1quad;
        float  scritto2quad;
        float  orale2quad;
        float  pratico2quad;
    };
    
    typedef Talunno Tregistro[33];
    
    void acquisiscialunni(Tregistro &alunni, int &N){
        int I;
        vuoto a;
        do{
          cout<<"Inserisci quanti alunni acquisire: ";
          cin>>N;
          cin.getline(a,1);
        }while((N<1)||(N>32));
        for(I=0;I<N;I++){
          cout<<endl;
          cout<<I+1<<char(248)<<" alunno "<<endl;
          cout<<endl;            
          cout<<"Nome: ";
          cin.getline(alunni[I].nome,20);
          cout<<"Cognome: ";
          cin.getline(alunni[I].cognome,25);
          cout<<"Classe: ";
          cin.getline(alunni[I].classe,15);
          
          cout<<endl;
          cout<<"Scritto 1"<<char(248)<<" quadrimestre: "<<endl;
          cout<<endl;
          
          for(I=0;I<4;I++){
            cout<<"Scritto: ";
            cin>>alunni[I].scritto1quad;
          }
        
          cout<<endl;
          cout<<"Orale 1"<<char(248)<<" quadrimestre: "<<endl;
          cout<<endl;
        
          for(I=0;I<4;I++){
            cout<<"Orale: ";
            cin>>alunni[I].orale1quad;
          }
        
          cout<<endl;
          cout<<"Pratico 1"<<char(248)<<" quadrimestre: "<<endl;
          cout<<endl;
          
          for(I=0;I<4;I++){
            cout<<"Pratico: ";
            cin>>alunni[I].pratico1quad;
          }
          
          cout<<endl;
          cout<<"Scritto 2"<<char(248)<<" quadrimestre: "<<endl;
          cout<<endl;
          
          for(I=0;I<4;I++){
            cout<<"Scritto: ";
            cin>>alunni[I].scritto2quad;
          }
          
          cout<<endl;
          cout<<"Orale 2"<<char(248)<<" quadrimestre: "<<endl;
          cout<<endl;
          
          for(I=0;I<4;I++){
            cout<<"Orale: ";
            cin>>alunni[I].orale2quad;
          }
                
          cout<<endl;
          cout<<"Pratico 2"<<char(248)<<" quadrimestre: "<<endl;
          cout<<endl;
          
          for(I=0;I<4;I++){
            cout<<"Pratico: ";
            cin>>alunni[I].pratico2quad;
          }
          
        }    
    }
    
    void visualizzaalunni(Tregistro alunni, int N){
        int I; 
        cout<<endl;      
        cout<<"----------------Riepilogo----------------"<<endl;      
        cout<<endl; 
        for(I=0;I<N;I++){
          cout<<I+1<<char(248)<<" alunno "<<endl;
          cout<<endl;     
          cout<<"Nome: "<<alunni[I].nome<<endl;
          cout<<"Cognome: "<<alunni[I].cognome<<endl;
          cout<<"Classe: "<<alunni[I].classe<<endl;
          cout<<endl;
          cout<<"Scritto 1"<<char(248)<<" quadrimestre: "<<endl;
          cout<<endl;
          
          for(I=0;I<4;I++){
          cout<<"Scritto: "<<alunni[I].scritto1quad<<endl;
          }
              
          cout<<endl;
          cout<<"Orale 1"<<char(248)<<" quadrimestre: "<<endl;
          cout<<endl;
          
          for(I=0;I<4;I++){
          cout<<"Orale: "<<alunni[I].orale1quad<<endl;
          }
          cout<<endl;
          cout<<"Pratico 1"<<char(248)<<" quadrimestre: "<<endl;
          cout<<endl;
          
          for(I=0;I<4;I++){
            cout<<"Pratico: "<<alunni[I].pratico1quad<<endl;
          }
          
          cout<<endl;
          cout<<"Scritto 2"<<char(248)<<" quadrimestre: "<<endl;
          cout<<endl;
          
          for(I=0;I<4;I++){
            cout<<"Scritto: "<<alunni[I].scritto2quad<<endl;
          }
                
          cout<<endl;
          cout<<"Orale 2"<<char(248)<<" quadrimestre: "<<endl;
          cout<<endl;
          
          for(I=0;I<4;I++){
            cout<<"Orale: "<<alunni[I].orale2quad<<endl;
          }
          
          cout<<endl;
          cout<<"Pratico 2"<<char(248)<<" quadrimestre: "<<endl;
          cout<<endl;
          
          for(I=0;I<4;I++){
            cout<<"Pratico: "<<alunni[I].pratico2quad<<endl;
          }  
        }    
    }        
                   
    
    int main()
    {
      Tregistro alunni;
      int N;
      
      acquisiscialunni(alunni,N);
      visualizzaalunni(alunni,N);
      
        
      system("PAUSE");	
      return 0;
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Chiarisci cosa succede e perche' usi nei cicli for il valore 4 come massimo ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    142
    perchè deve acquisire 4 voti per materia e poi mi fa l acquisizione di un solo alunno anche se inserisco 2 come acquisizione di alunni

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da Gybra
    perchè deve acquisire 4 voti per materia
    Ma se scrivi

    for(I=0;I<4;I++){
    cout<<"Scritto: "<<alunni[I].scritto1quad<<endl;
    }

    la I in alunni[I] riguardera' il numero dell'alunno, non della materia ... e' tutto da correggere ...

    e poi mi fa l acquisizione di un solo alunno anche se inserisco 2 come acquisizione di alunni
    E ti chiedevo, come te ne accorgi?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    142
    me ne accorgo perchè appena finisco di inserire l ultimo voto del pratico del primo alunno finisce l acquisizione e passa alla visualizzazione

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ovviamente se usi delle for all'interno di altre for, non puoi SEMPRE usare la stessa variabile I ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    142
    ok grazie adesso provo comunque non sapevo che non si potessero usare stesse variabili in piu cicli for annidati

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da Gybra
    ok grazie adesso provo comunque non sapevo che non si potessero usare stesse variabili in piu cicli for annidati
    Mi sembra ovvio che la seconda for ti fa perdere il valore che assume la variabile durante il primo for ... mica puo' tenere memorizzati due valori distinti ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Originariamente inviato da Gybra
    ok grazie adesso provo comunque non sapevo che non si potessero usare stesse variabili in piu cicli for annidati
    le puoi usare ma così
    codice:
          for(int I=0;I<4;I++){
             ....
          }
    in modo da rendere I variabile locale interna al ciclo.

    ciao
    sergio

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    142
    no ma in quella maniera ne acquisira solo 4 a me servono n acquisizione che stabilisce l utente comunque ho risolto utilizzando diverse variabili per ogni ciclo

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.