Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - programma con struct e switch
Forum - C/C++ - programma con struct e switch

Avatar
ciao888 (Normal User)
Pro


Messaggi: 69
Iscritto: 14/10/2010

Segnala al moderatore
Postato alle 12:53
Sabato, 05/02/2011
avevo già fatto una domanda del genere,avevo un problema con la funzione struct ed ho risolto così,in questo modo posso scegliere la stagione da analizzare,ma il programma mi dà errore su  char opzione,come mai?
Codice sorgente - presumibilmente C++

  1. using namespace std;
  2. struct stagione
  3. {char giorni[30];
  4. char aggettivo[20];}
  5. primavera, autunno;
  6. void stag(char scelta)
  7. {
  8. cout<<"immetti l'aggettivo:";
  9. cout<<"a)primavera";
  10. cout<<"b)autunno";
  11. cin>>scelta;
  12. switch(scelta){
  13. case 'a':
  14. cout<<"aggettivo";
  15. cin>>primavera.aggettivo;
  16. break;
  17. case 'b':
  18. cout<<"aggettivo";
  19. cin>>autunno.aggettivo;
  20. break;}
  21. int main()
  22. {char opzione;//qui il programma mi dà errore
  23. stag(opzione);
  24. system("pause");
  25. return 0;}


PM
Avatar
carlduke (Member)
Pro


Messaggi: 153
Iscritto: 29/01/2011

Up
1
Down
V
Segnala al moderatore
Postato alle 13:43
Sabato, 05/02/2011
se non hai fatto errori di battitura, otterai errore all'infinito finchè non aggiungi una parentesi alla fine della funzione stag :nono:

comunque per il return,

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2.  
  3. using namespace std;    
  4.  
  5. struct stagione{
  6.        char giorni[30];
  7.        char aggettivo[20];
  8. }primavera, autunno;  
  9.  
  10. char* stag(char scelta){
  11.       cout<<"immetti l'aggettivo: ";
  12.  //Metti degli spazi a fine stringa altrimenti è tutto appicicato
  13.       cout<<"a)primavera ";
  14.       cout<<"b)autunno";
  15.  
  16.       cin>>scelta;  
  17.  
  18.       switch(scelta){
  19.        case 'a':
  20.         cout<<"aggettivo ";
  21.         cin>>primavera.aggettivo;
  22.        break;
  23.        
  24.        case 'b':
  25.         cout<<"aggettivo ";
  26.         cin>>autunno.aggettivo;
  27.        break;
  28.       }
  29.  
  30.    if(scelta == 'a')
  31.      return primavera.aggettivo;
  32.    else
  33.      return autunno.aggettivo;
  34. }
  35.  
  36. int main(){
  37.       char opzione;
  38.       cout<<stag(opzione)<<endl;
  39.       system("pause");
  40.       return 0;
  41.  }


Ultima modifica effettuata da carlduke il 05/02/2011 alle 13:51
quindi devo mettere char* perchè primavera.aggettivo è un puntatore - ciao888 - 05/02/11 15:11
si perchè quando dichiari un array dichiari a tutti gli effetti un puntatore - carlduke - 06/02/11 11:29
PM
Avatar
carlduke (Member)
Pro


Messaggi: 153
Iscritto: 29/01/2011

Up
0
Down
V
Segnala al moderatore
Postato alle 13:00
Sabato, 05/02/2011
scusa ma qual è l'errore?

mi dà errore su char opzione, come mai? - ciao888 - 05/02/11 13:02
carlduke intendevo l'output del compilatore. In parole grezze, che errori ti escono quando compili? - Pitagora - 05/02/11 13:07
mi scrive:in function void :parse error before,'opzione',each undecleared - ciao888 - 05/02/11 13:09
ho risolto,era un problema di parentesi - ciao888 - 05/02/11 13:19
come faccio però a mettere il return?vorrei mettere che se scelgo opzione a mi restituisce primavera.aggettivo altrimenti autunno.aggettivo - ciao888 - 05/02/11 13:20
PM