PDA

View Full Version : [C++]Esercizio con if, aiutoooo


Jedi82
21-10-2004, 21:17
ragazzi, tentando di fare un banale esercizio con istruzione if else che qui vi propongo, ho delle domande da porvi:

**************************************

#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
int random;
int tentativo;
int a;

random= rand();

cout<<"Inserisci il numero magico:\n\n";
cin>>tentativo;

if(tentativo==random)
cout<<"**hai indovinato!!**\n";

else if (tentativo>random)
cout<<"il numero e troppo grande...";
else if (tentativo<random)
cout<<"il numero e troppo piccolo...";

return 0;
}

**************************************

voglio che, eseguendolo, io possa vedere i miei if che n riesco a vedere, leggo solo "inserisci ec ecc" e se metto il valore bam,. mi chiude il programma..come diavolo si fa la getchar del buon vecchio C qui????
Aggiungo una cosa; e se volessi fare una specie di loop e cioe dare la possibilita all utente di fargli tentare la fortuna 4 volte come devo fare?

Argosoft
21-10-2004, 22:02
cin.get();

per il loop basta inserire un semplice ciclo for:


for(int i=0; i<4 ; i++){
random= rand();

cout<<"Inserisci il numero magico:\n\n";
cin>>tentativo;

if(tentativo==random)
cout<<"**hai indovinato!!**\n";

else if (tentativo>random)
cout<<"il numero e troppo grande...";
else if (tentativo<random)
cout<<"il numero e troppo piccolo...";
}


:)

RaouL_BennetH
21-10-2004, 22:54
Poi, un piccolo suggerimento ma solo per la leggibilità, ovvero, quando hai variabili dello stesso tipo, puoi dichiararle su una sola riga:



int a, random, tentativo;

motogpdesmo16
22-10-2004, 10:06
alla fine, prima della parentesi grappa che chiude l'intero programma, prova a mettere

while (!kbhit())

e solo se poi premerai un tasto il programma terminerà.

Jedi82
22-10-2004, 10:53
si ok ma ripeto, per visualizzare a skermo tutti i cout che ho scritto come si fa? Cosi com'e se premi un numero il programma termina sigh!!!

Cmq x il ciclo for devo dichiarare un'altra variabile i? E poi <4 n e un po troppo poco????

ri
22-10-2004, 11:31
Originariamente inviato da RaouL_BennetH
Poi, un piccolo suggerimento ma solo per la leggibilità, ovvero, quando hai variabili dello stesso tipo, puoi dichiararle su una sola riga:



int a, random, tentativo;



non sono d'accordo, credo che una dichiarazione scritta in questo modo


int a,
random,
tentativo;

char test,
blabla;

float pippo;



sia più leggibile

Jedi82
22-10-2004, 17:34
ok ok ma la domanda che piu mi preme e questa:

restando su quell esempio, io vorrei vedere a skermo ogni singolo maledetto passaggio sigh, voglio leggere "hai indovinto" e "ritenta" insomma, nel C++ come si fa????

VegetaSSJ5
23-10-2004, 17:14
Originariamente inviato da motogpdesmo16
...prima della parentesi grappa...
:asd: :asd: :rotfl:

kk3z
23-10-2004, 17:29
http://forums.multiplayer.it/images/smilies/rotfl.gifhttp://forums.multiplayer.it/images/smilies/rotfl.gifhttp://forums.multiplayer.it/images/smilies/rotfl.gifhttp://forums.multiplayer.it/images/smilies/rotfl.gif:)

Banus
24-10-2004, 13:18
Originariamente inviato da Jedi82
ok ok ma la domanda che piu mi preme e questa:

restando su quell esempio, io vorrei vedere a skermo ogni singolo maledetto passaggio sigh, voglio leggere "hai indovinto" e "ritenta" insomma, nel C++ come si fa????
Così come l'hai scritto il programma genera il numero, fa la domanda, risponde (ma non te ne accorgi perchè) un microsecondo dopo è arrivato al return 0 dopodichè esce chiudendo la finestra.
Con il for{} puoi ripetere tot volte la domanda, e avere anche il tempo di leggere la risposta.
Oppure puoi fermare un attimo il programma prima che esca, con il while. Prova i suggerimenti che ti hanno dato, che funzionano ;)

[m_i_l_o][electronics]
24-10-2004, 19:46
se usi il kbhit() tra una istruzione e l'altra nel ciclo comunque, dovresti riuscire a visualizzare un tentativo per volta

cionci
25-10-2004, 12:07
Vi ricordo che kbhit non fa parte dello standard del C e tanto meno del C++... Inoltre non è disponibile con tutti i compialtori...