我不明白为什么他们不接受这个解决方案,他们说错了答案: -
#include <stdio.h>
int main(void)
{
int val=0;
printf("Input:- \n");
do {
scanf("%d",&val);
printf("%d \n",val);
}
while(val < 42);
return 0;
}
答案 0 :(得分:3)
两个错误:
printf("Input:- \n");
像这样:
if(n!=42)
printf("%d\n",n);
else
break;
答案 1 :(得分:1)
首先,问题陈述指出你应该继续打印数字,直到42到达。
1)如果第一个数字本身是42,该怎么办?你的代码无论如何都打印它
2)printf("Input:- \n");
删除此行。这仅用于显示输入内容。您无需打印此内容。
3)while(val<42)
val
可以是42
以外的其他任何内容,但不一定小于42
一种好方法是尝试一些自己的测试用例,并将输出与预期输出进行比较。
答案 2 :(得分:0)
为什么不允许超过42的任何数字?使用while(1)
并在42
时休息。
这个问题已在Life, the Universe, and Everything
答案 3 :(得分:0)
我认为您误解了输入为42或更高时的问题,您必须停止处理,但问题实际上是输入完全是42停止处理。 尽管您了解的是,您的代码中存在一个缺陷,即当输入为42时,您将首先打印它,然后您的do while循环将结束。