如何在C中比较运行时随机生成的数字和用户输入的数字?
我正在用c制作泡泡游戏,在游戏机窗口中随机生成一些数字,用户需要输入出现在屏幕或控制台窗口中的数字,我需要比较用户输入的数字和随机生成的数字,并使这些数字在屏幕上不可见 我在c中使用了rand()函数,对于用户输入,我使用了getch()函数,并且尝试了每种类型转换,但还没有得到解决方案如何在C中比较运行时随机生成的数字和用户输入的数字?,c,C,我正在用c制作泡泡游戏,在游戏机窗口中随机生成一些数字,用户需要输入出现在屏幕或控制台窗口中的数字,我需要比较用户输入的数字和随机生成的数字,并使这些数字在屏幕上不可见 我在c中使用了rand()函数,对于用户输入,我使用了getch()函数,并且尝试了每种类型转换,但还没有得到解决方案 void main() { char temp1 = 0; char temp = 0; temp1 = rand()%10; temp = getch(); if(temp == temp1)
void main() {
char temp1 = 0;
char temp = 0;
temp1 = rand()%10;
temp = getch();
if(temp == temp1)
printf("ok");
}
我想比较随机生成的值和运行时的用户输入,以及用户在控制台上看到的输入是否相等,我想退出。数字字符有一个字符代码值
'0'
到'9'
(在ASCII字符集0x30到0x39或48到57十进制),而rand()%10的整数值为0到9
通过将字符代码'0'
(48)添加到随机数,您将生成一个随机字符代码'0'
到'9'
int main()
{
char temp1 = rand() % 10 + '0' ;
char temp = getch() ;
if( temp == temp1 )
{
printf("ok");
}
return 0 ;
}
或者,如果从输入字符中减去'0'
,则将数字字符转换为相应的0到9个整数值(并将其他字符转换为其他值)。getch()代码>不是在数值范围0
中输入数字。9
而是在字符范围'0'
中输入数字<代码>'9'
。所以试试看temp=getch()-“0”
;是的!谢谢你,但我不明白你为什么要从getch()中减去'0'。或者temp1='0'+rand()%10代码>看起来更好。您应该使用int
而不是char
。非常感谢。我知道了。