У меня есть код ниже.Проблема в переменной r
, которая сначала содержит случайное число от 1 до 10.Позже он сравнивается внутри цикла с номером пользовательского ввода.Цикл заканчивается, когда пользователь угадывает случайно сгенерированное число.
Я использую short
тип для предположения и int
для случайно сгенерированного числа r
.Дело в том, что после первого предположения пользователя r
становится 0, и я не знаю почему.Эта проблема не возникает, если guess
является int
.
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main(int argc, const char * argv[]) {
srand(time(NULL));
int r = (rand()%10)+1;
short guess = -1;
printf("%d\n", r);
while ((guess)!= r){
printf("%d\n", (int) guess);
printf("%d\n", guess);
printf("%d\n", r);
printf("Give me a number from 1 to 10: ");
scanf("%d",&guess);
if (guess> r){
printf("The number is lower\n");
}
else if (guess<r){
printf("The number is higher\n");
}
else {
printf("Corrent!\n");
}
}
return 0;
}
Пример вывода:
7
-1
-1
7
Give me a number from 1 to 10: 5
The number is lower
5
5
0
Give me a number from 1 to 10: