zaire90 (Normal User)
Rookie
Messaggi: 46
Iscritto: 16/10/2009
|
Salve sono nuovo nel forum e ho iniziato a studiare programmazione c++ solo da circa un mese. Voglio creare un programma che scelga un numero a caso tra 0 e 99 e che l'utente dovrà poi indovinare in un massimo di 10 tentativi. Quindi dovrò usare rad()%100, per creare il numero e poi tutte belle cosine come lo switch per dirmi se il numero che inserisco da tastiera è troppo piccolo o troppo grande, un ciclo for per i 10 tentativi ecc.
Ci sono quasi riuscito ma il programma mi gira male. Metto male qualche istruzione. Ci sarebbe qualcuno così gentile da scrivermi un esempio di un programma del genere...?
Magari qualcuno che già l'ha fatto.
GRAZIE in anticipo a chi avrà la pazienza di rispondermi
|
|
giuseppe93 (Ex-Member)
Pro
Messaggi: 166
Iscritto: 02/08/2009
|
ti conviene postare il tuo codice inceve di chiedere che qualcuno te lo faccia... poi non ti conviene usare un ciclo for per l'input e neanche uno switch ma una serie di if. sicuramente nelle sezione sorgenti>c++ ci sono un sacco di esempio... e poi NON FLODDARE
|
|
TheKaneB (Member)
Guru^2
Messaggi: 1792
Iscritto: 26/06/2009
|
ciao! inizio subito con il darti qualche dritta sul forum.
Qui funziona così: tu posti il codice che hai prodotto, all'interno del tag Code
Codice sorgente - presumibilmente C/C++ |
int main()
{
// In questo modo mantiene la formattazione
return 0;
}
|
Esprimi il tuo problema, e qualcuno ti risponderà con consigli, suggerimenti e correzioni. Una delle policy fondamentali è "niente pappa pronta"! Quindi posta il tuo codice e qualcuno ti darà una mano, altrimenti non aspettarti nulla.
Ciao
|
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
Postato originariamente da zaire90:
Ci sono quasi riuscito ma il programma mi gira male. Metto male qualche istruzione. |
Posta questo codice che gira male ... ti si dice cosa modificare ... |
|
cassin.simone (Member)
Guru
Messaggi: 1051
Iscritto: 03/06/2009
|
Postato originariamente da giuseppe93:NON FLODDARE |
Mi dispiace contraddirti, ma credo proprio che non ha floddato volontariamente. Molto spesso accade ciò. La non volontà è testimoniata dalla data e dall'ora molto vicine tra di loro (1 minuto circa).
Ciao
SC
|
|
zaire90 (Normal User)
Rookie
Messaggi: 46
Iscritto: 16/10/2009
|
Allora scusate l'ignoranza ma non so cosa significhi "floddare", comunque ho dedotto che significhi postare 2 volte. In ogni caso non l'ho fatto di proposito ma ha fatto tutto da solo il computer!OK
Quindi devo postare il codice:
/* QUESTO PROGRAMMA SCEGLIE A CASO UN NUMERO TRA 0 E 99 E TI PERMETTE DI
INDOVINARLO DICENDOTI SE IL NUMERO INSERITO DA TASTIERA E'
TROPPO PICCOLO O TROPPO GRANDE. */
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
main()
{
int opzione,magic,guess,t;
srand(time(NULL));
magic=rand()%100;
do
{
printf("IL NUMERO MAGICO\nIndovina il numero che sceglie il codice");
printf("\n1. Scegli un nuovo numero");
printf("\n2. GIOCA");
printf("\n3. Esci");
printf("\n NUMERO ");scanf("%d",&opzione);
switch (opzione)
{
case 1: rand()%100;break;
case 2: printf("\nIndovina il numero magico! = ");
scanf("%d",&guess);
for (t=1;t<=10;t++)
{if (guess==magic)
{
printf("\nGIUSTO!!!");
system("PAUSE");return 0;
}
else if (guess<magic) printf("\nTROPPO PICCOLO");
else printf("\nTROPPO GRANDE");
}
printf("HAI FINITO I TENTATIVI!");break;
case 3: {
printf("ARRIVEDERCI");
system("PAUSE");return 0;
}
}
}
while (opzione!=3);
system("PAUSE");
return 0;
}
Come potete vedere ho scritto il ciclo for ma o non ho dato le istruzioni xk non riesco a capire come fare. Leggete un po' e consigliatemi
|
|
Matthew (Member)
Expert
Messaggi: 387
Iscritto: 29/01/2007
|
Racchiudi il codice nei tag code...
Codice sorgente - presumibilmente C++ |
/* QUESTO PROGRAMMA SCEGLIE A CASO UN NUMERO TRA 0 E 99 E TI PERMETTE DI INDOVINARLO DICENDOTI SE IL NUMERO INSERITO DA TASTIERA E' TROPPO PICCOLO O TROPPO GRANDE. */ #include <stdlib.h> #include <stdio.h> #include <time.h> main() { int opzione,magic,guess,t; srand(time(NULL)); magic=rand()%100; do { printf("IL NUMERO MAGICO\nIndovina il numero che sceglie il codice"); printf("\n1. Scegli un nuovo numero"); printf("\n2. GIOCA"); printf("\n3. Esci"); printf("\n NUMERO ");scanf("%d",&opzione); switch (opzione) { case 1: rand()%100;break; case 2: printf("\nIndovina il numero magico! = "); scanf("%d",&guess); for (t=1;t<=10;t++) {if (guess==magic) { printf("\nGIUSTO!!!"); system("PAUSE");return 0; } else if (guess<magic) printf("\nTROPPO PICCOLO"); else printf("\nTROPPO GRANDE"); } printf("HAI FINITO I TENTATIVI!");break; case 3: { printf("ARRIVEDERCI"); system("PAUSE");return 0; } } } while (opzione!=3); system("PAUSE"); return 0; }
|
|
|
lorenzo (Normal User)
Guru
Messaggi: 1178
Iscritto: 15/04/2008
|
comunque questo è C non C++...
|
|
Matthew (Member)
Expert
Messaggi: 387
Iscritto: 29/01/2007
|
Allora il problema e' che nel codice dei tuoi dieci tentativi non viene riletto nessun nuovo numero. In pratica l'utente inserisce un nuovo numero, e il programma controlla dieci volte se quel numero e' corretto. Chiaramente questo non ha senso.
Il case 2 va riscritto cosi'
Codice sorgente - presumibilmente C++ |
case 2: { for (t=1;t<=10;t++) { printf("\nIndovina il numero magico! = ") scanf("%d",&guess); if (guess==magic) { printf("\nGIUSTO!!!"); system("PAUSE"); return 0; } else if (guess<magic) printf("\nTROPPO PICCOLO"); else printf("\nTROPPO GRANDE"); } printf("HAI FINITO I TENTATIVI!"); } break;
|
Prova cosi', dovrebbe andare...
Ultima modifica effettuata da Matthew il 16/10/2009 alle 18:03 |
|