所以我用编码器编写了这个程序,
#include <stdio.h>
int main()
{
int num1, num2;
scanf("%d%d", &num1, &num2);
if (num1 > num2)
printf("The min is:%d\n ", num2);
else
printf("The min is:%d\n ", num1);
return 0;
}
问题是程序不能运行。它一直显示这一点,然后过了一段时间就停止了:
移除扫描程序修复了这个问题,我尝试了其他程序使用扫描,这是很好的。有什么想法吗?
发布于 2016-10-10 08:14:52
您期望scanf()
如何将123
或1232
解释为两个整数?您输入的所有数字都有可能被第一个%d
“吃掉”,然后scanf()
等待第二个数字的出现。
您必须在它们之间使用一些分隔符,或者使用一些非数字字符:
scanf("%d/%d", &num1, &num2);
这告诉scanf()
预期两个数字之间会有一个斜线。当然,您也可以使用空格(在格式字符串中没有任何空格,正如注释中所指出的那样)。
此外,在依赖于数字之前,您应该检查返回值:
if(scanf("%d %d", &num1, &num2) == 2)
{
}
https://stackoverflow.com/questions/39953818
复制相似问题