Scusami, orario pranzo...
Guarda qui:
codice:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int indovina(int n);
int main(){
int n = 0;
srand(time(NULL));
do {
n = 1 + rand() % 1000;
} while(indovina(n));
return 0;
}
int indovina(int n){
char yon = 0;
int guess = 0;
printf("I have a number between 1 and 1000.\nCan you guess my number?\nEnter your first guess: ");
scanf("%d%*c", &guess);
while(guess != n){
if( guess <= n ){
printf("Too low. Try again: ");
} else {
printf("Too high. Try again: ");
}
scanf("%d&*c", &guess);
}/*fine while*/
printf("Excellent! You guessed the number!\nWould you like to play again(y or n)?");
scanf("%c", &yon);
if(yon == 'y') {
return 1;
} else {
return 0;
}
}
La funzione indovina ora contiene tutta la logica di gioco e restituisce se l'utente vuole (o meno) continuare a giocare.
Quando leggi un intero con scanf è buona norma buttare via lo \n con la direttiva di formattazione %*c...
Vedi se funziona perché non l'ho provato.