Oppure

Loading
05/12/08 15:34
morpheus
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";);

}

aaa
05/12/08 15:52
Overflow
quando chiami una funzione devi mettere le parentesi tonde sia se ha parametri e sia se non li ha quindi:

cout <<carattgiusto()<<endl;
aaa
05/12/08 21:49
morpheus
cmq come hai dettu tu è errato perchè una procedura non resituisce niente quindi il giusto codice sarebee cosi:
carattgiusto()
cout<<;
altrimenti darebbe errore
aaa
06/12/08 11:14
Overflow
si hai ragione, non avevo visto le funzioni:
#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)
   carattgiusto();
else
cout caratterrato();
if (b==bb)
 carattgiusto();
else
 caratterrato();
if (c==cc)
 carattgiusto();
else
 caratterrato();
if ((a==aa)&&(b==bb)&&(c==cc))
allok();
if ((a!=aa)&&(b!=bb)&&(c!=cc))
{
allerrato();
break;
}
}
system("PAUSE");

}


aaa
06/12/08 19:16
morpheus
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
aaa
07/12/08 7:33
Overflow
scusa na non ho capito tanto bene.
Prova ad eliminare le ultime due condizioni quelle dove fai i controlli sulle variabili insieme.
aaa