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++ - help programmaaa...
Forum - C/C++ - help programmaaa...

Avatar
morpheus (Normal User)
Newbie


Messaggi: 12
Iscritto: 30/09/2008

Segnala al moderatore
Postato alle 16:34
Venerdì, 05/12/2008
salve eccomi qui nuovamente(mi scusa con il moderatore per aver scritto abbreviatamente ma purtroppo la fretta mi ha portato fare ciò), ritornando a noi ho fatto un programmino che dopo aver generato 3 numeri random controllerà se siano esatti o sbagliati e stampare a video per esatto 0 e per sbagliato X. In pratica ho fatto delle procedure però non ottengo ciò che voglio. Mi dareste una mano? grazie. ecco il codice:
#include <iostream>
using namespace std;
void carattgiusto(void)
{
     cout<<"0";
}
void caratterrato(void)
{
     cout<<"X";
}
void allok(void)
{
     cout<<"0 0 0";
}
void allerrato(void)
{
     cout<<"X X X";
}    





main()
{
      srand(time(0));
      int a = 0+rand() % 9 , b = 0+rand() % 9 , c = 0+rand() % 9 , x=0;
      int aa=0,bb=0,cc=0;
    
    
      cout <<a<<b<<c<<endl<<endl;
      for (x=0;x<10;x++)
          { cout<<"Tentativo numero: "<<x + 1<<endl;
            cout<< "inserisci 3 numeri:";
            cin>>aa>>bb>>cc;
            if(a==aa)
              {cout <<carattgiusto<<endl;}
              else
              {cout <<caratterrato<<endl;}
            if (b==bb)
              {cout <<carattgiusto<<endl;}
              else
              {cout <<caratterrato<<endl;}
            if (c==cc)
              {cout <<carattgiusto<<endl;}
              else
              {cout <<caratterrato<<endl;}
            if ((a==aa)&&(b==bb)&&(c==cc))
              {cout <<allok<<endl;}
            if ((a!=aa)&&(b!=bb)&&(c!=cc))  
              {cout <<allerrato<<endl;break;}
            
                      
            
            
      }
system("PAUSE");

}


PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 16:52
Venerdì, 05/12/2008
quando chiami una funzione devi mettere le parentesi tonde sia se ha parametri e sia se non li ha quindi:

cout <<carattgiusto()<<endl;

PM Quote
Avatar
morpheus (Normal User)
Newbie


Messaggi: 12
Iscritto: 30/09/2008

Segnala al moderatore
Postato alle 22:49
Venerdì, 05/12/2008
cmq come hai dettu tu è errato perchè una procedura non resituisce niente quindi il giusto codice sarebee cosi:
carattgiusto()
cout<<;
altrimenti darebbe errore

PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 12:14
Sabato, 06/12/2008
si hai ragione, non avevo visto le funzioni:
Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. using namespace std;
  3. void carattgiusto(void)
  4. {
  5. cout<<"0";
  6. }
  7. void caratterrato(void)
  8. {
  9. cout<<"X";
  10. }
  11. void allok(void)
  12. {
  13. cout<<"0 0 0";
  14. }
  15. void allerrato(void)
  16. {
  17. cout<<"X X X";
  18. }
  19.  
  20.  
  21.  
  22.  
  23.  
  24. main()
  25. {
  26. srand(time(0));
  27. int a = 0+rand() % 9 , b = 0+rand() % 9 , c = 0+rand() % 9 , x=0;
  28. int aa=0,bb=0,cc=0;
  29.  
  30.  
  31. cout <<a<<b<<c<<endl<<endl;
  32. for (x=0;x<10;x++)
  33. { cout<<"Tentativo numero: "<<x + 1<<endl;
  34. cout<< "inserisci 3 numeri:";
  35. cin>>aa>>bb>>cc;
  36. if(a==aa)
  37.    carattgiusto();
  38. else
  39. cout caratterrato();
  40. if (b==bb)
  41.  carattgiusto();
  42. else
  43.  caratterrato();
  44. if (c==cc)
  45.  carattgiusto();
  46. else
  47.  caratterrato();
  48. if ((a==aa)&&(b==bb)&&(c==cc))
  49. allok();
  50. if ((a!=aa)&&(b!=bb)&&(c!=cc))
  51. {
  52. allerrato();
  53. break;
  54. }
  55. }
  56. system("PAUSE");
  57.  
  58. }



PM Quote
Avatar
morpheus (Normal User)
Newbie


Messaggi: 12
Iscritto: 30/09/2008

Segnala al moderatore
Postato alle 20:16
Sabato, 06/12/2008
senti allo in pratika poi succede che se sono tutti e tre giusti stampa 0 0 0 viceversa X X X. Però già nei controlli c'è questo e quindi se sono tutti giustio mi farà cosi:
0
0
0
0 0 0
in pratica lo stampa 2 volte perchè li controlla prima a uno ad uno e poi insieme.Come faccio per dirgli che se sono tutti esatti o tutti sbagliati di stampare solo
0 0 0anzicchè ho detto prima? grazie

PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 8:33
Domenica, 07/12/2008
scusa na non ho capito tanto bene.
Prova ad eliminare le ultime due condizioni quelle dove fai i controlli sulle variabili insieme.

PM Quote