Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C中比较运行时随机生成的数字和用户输入的数字?_C - Fatal编程技术网

如何在C中比较运行时随机生成的数字和用户输入的数字?

如何在C中比较运行时随机生成的数字和用户输入的数字?,c,C,我正在用c制作泡泡游戏,在游戏机窗口中随机生成一些数字,用户需要输入出现在屏幕或控制台窗口中的数字,我需要比较用户输入的数字和随机生成的数字,并使这些数字在屏幕上不可见 我在c中使用了rand()函数,对于用户输入,我使用了getch()函数,并且尝试了每种类型转换,但还没有得到解决方案 void main() { char temp1 = 0; char temp = 0; temp1 = rand()%10; temp = getch(); if(temp == temp1)

我正在用c制作泡泡游戏,在游戏机窗口中随机生成一些数字,用户需要输入出现在屏幕或控制台窗口中的数字,我需要比较用户输入的数字和随机生成的数字,并使这些数字在屏幕上不可见

我在c中使用了rand()函数,对于用户输入,我使用了getch()函数,并且尝试了每种类型转换,但还没有得到解决方案

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
。非常感谢。我知道了。