所以我用coderunner编写了这个程序,
#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;
}
问题是该程序不会运行。它会一直显示,然后在一段时间后停止:
删除scanf解决了这个问题,我已经尝试过使用scanf的其他程序,这很好。有什么想法吗?
答案 0 :(得分:2)
您希望scanf()
如何解释,例如123
或1232
为两个整数?您输入的所有数字都可能被“吃掉”#34;通过第一个%d
,然后scanf()
等待第二个更多。
您必须使用某些分隔或它们之间的某些非数字字符:
scanf("%d/%d", &num1, &num2);
这告诉scanf()
期望两个数字之间出现斜杠。
此外,您应该在依赖数字之前检查返回值:
if(scanf("%d %d", &num1, &num2) == 2)
{
}