Mình đang làm bài toán dự đoán số được ra ngẫu nhiên.
Khi đã đoán đúng số ngẫu nhiên đó thì được lựa chọn chơi tiếp hay không.
Quá trình chạy đoán số ko vấn đề gì chỉ đến khi chọn có chơi tiếp hay không. Nhấn y để chơi tiếp hoặc n để dừng. Trường hợp nhập n thì đã dừng như dự kiến còn muốn tiếp tục khi nhập y thì lỗi báo exception thrown: Run-Time Check Failure #3 - The variable ‘v’ is being used without being initialized..
Mong các cao nhân chỉ điểm dùm.
char play(int a, int b);
enum Status
{
CONTINUE, WIN, END
};
int main(void)
{
int x, y, rnumber;
static char z;
printf("%s", "I have a number between 1 and 1000.\nCan you guess my number?\nPlease type your first guess: ");
srand(time(NULL));
x = 1 + (rand() % 1000);
scanf_s("%d", &y);
z = play(x, y);
while (END != z)
{
switch (z)
{
case CONTINUE:
scanf_s("%d", &y);
z = play(x, y);
break;
case WIN:
x = 1 + (rand() % 1000);
scanf_s("%d", &y);
z = play(x, y);
break;
}
}
system("pause");
}
char play(int a, int b)
{
enum Status v;
static int i = 1;
if (a!=b)
{
if (a<b)
{
printf("%d. Too high. Try again: ", i);
i++;
v = CONTINUE;
}
else if(a>b)
{
printf("%d. Too low. Try again: ", i);
i++;
v = CONTINUE;
}
}
else
{
printf("%d. Excellent. Continue (y or n)?", i);
i++;
if (getchar() == 'y')
{
v = WIN;
}
else if (getchar() == 'n')
{
v = END;
}
}
return v;