Guarda questo mio programmino semplice che ti genera un numero casuale tra 1 e n (valore che decidi tu) e che risolve il tuo problema, con un ciclo do-while... se hai domande fammi sapere!
// VERSIONE C++ (compilato in Visual C++)
#include <iostream.h>
#include <time.h>
#include <stdlib.h>
#define n 10
int main() {
time_t t; //t viene trattato come se fosse un intero
int num=0;
cout<<"Programma indovina numero - by Rand\n";
//scelgo a caso un numero tra 1 e n;
time(&t);
srand(t);
t=rand();
t=t%n;
t++;
cout<<"Scegli un numero tra 1 e "<<n<<": ";
cin>>num;
//controllo la scelta (anche nel caso di errore)
if(num<1 || num>n) {
do {
cout<<"ERRORE!! Il numero deve essere compreso tra 1 e "<<n<<endl;
//rimando a video la scelta finch? non ? corretta (ciclo do-while)
cout<<"Scegli un numero tra 1 e "<<n<<": ";
cin>>num;
} while(num<1 || num>n);
}
//controllo se ha indovinato il numero...
if(num==t)
cout<<"Hai indovinato!! BRAVO!\n";
else
cout<<"NON hai indovinato!!
\n";
system("pause"
;
return 0;
}
// VERSIONE C (compilato con Dev-Cpp)
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define n 10
int main() {
time_t t; //t viene trattato come se fosse un intero
int num=0;
printf("Programma indovina numero - by Rand\n"
;
//scelgo a caso un numero tra 1 e n;
time(&t);
srand(t);
t=rand();
t=t%n;
t++;
printf("Scegli un numero tra 1 e %d: ", n);
scanf("%d", &num);
//controllo la scelta (anche nel caso di errore)
if(num<1 || num>n) {
do {
printf("\nERRORE!! Il numero deve essere compreso tra 1 e %d.\n", n);
//rimando a video la scelta finch? non ? corretta (ciclo do-while)
printf("Scegli un numero tra 1 e %d: ", n);
scanf("%d", &num);
} while(num<1 || num>n);
}
//controllo se ha indovinato il numero...
if(num==t)
printf("Hai indovinato!! BRAVO!\n"
;
else
printf("NON hai indovinato!!
\n"
;
system("pause"
;
return 0;
}