gpt4 book ai didi

c - c 中的嵌套 if 结构未按预期方式工作

转载 作者:行者123 更新时间:2023-11-30 16:16:44 25 4
gpt4 key购买 nike

我是一名初级程序员,在这里编写了一些数字猜测代码作为练习。这里的c代码不打印“正确!”如果用户猜对了数字。如果结构不起作用,为什么要嵌套?强文字

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <time.h>

int main()
{
int iRandomNum = 0;
char cUserInput = 0;
srand(time(NULL));
iRandomNum = (rand() % 10) + 1;

printf("Guess a number between 1 to 10:");
scanf("%c", &cUserInput);

if(isdigit(cUserInput))
{
if(cUserInput==iRandomNum)
printf ("Correct!");
else
printf("The right answer was %d", iRandomNum);
}
else
printf("You did not enter a digit.");

return 0;

}

最佳答案

char 用于字符,因此如果您输入 5,则 scanf 会将字符“5”分配给变量 cUserInput。如果 C 实现对字符使用 ASCII 编码,则“5”等于数字 53,它永远不会等于 iRandomNum

如果您想要数字,解决方案是使用 int:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <time.h>

int main()
{
int iRandomNum = 0;
int cUserInput = 0;
srand(time(NULL));
iRandomNum = (rand() % 10) + 1;

printf("Guess a number between 1 to 10:");
scanf("%d", &cUserInput);

if(cUserInput>=1 && cUserInput<=10)
{
if(cUserInput==iRandomNum)
printf ("Correct!");
else
printf("The right answer was %d", iRandomNum);
}
else
printf("You did not enter a digit.");

return 0;

}

关于c - c 中的嵌套 if 结构未按预期方式工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56512590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com