为什么不能使用此代码?
问题描述:
这个问题是关于SPOJ教程问题:为什么不能使用此代码?
你的程序是使用蛮力的方法,以找到答案生命,宇宙以及一切。更确切地说...重写从输入到输出的小数字。在读入数字42后停止处理输入。输入处的所有数字都是一位或两位数的整数。
我想在没有if-else语句的情况下运行该程序,但该程序不起作用。有人可以告诉我我做错了什么吗?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
while (i != 42)
{
putchar(i);
i = getchar();
}
exit(0);
}
答
下面是一个快速和肮脏的方式来获得你想要的结果。
由于您希望用户输入号码(由多个字符组成),因此您需要使用scanf()
而不是getchar()
。
scanf()的文档:http://www.cplusplus.com/reference/cstdio/scanf/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i = 0;
while (i != 42)
{
scanf("%d", &i);
printf("You have entered : %d\n", i);
}
printf("You have successfuly entered 42!\n");
exit(0);
}
希望这有助于。
+0
我不认为你应该为在线挑战提供正确的答案,而你没有! –
'i'在第一次迭代期间未初始化 - 其值为* indeterminate *。 –
在得到i的值等于42后,程序是否应该检测退出语句? – shikhar
42不是一个单独的字符 –