因此SPOJ存在问题,如下所述:
给定两个自然数(均不大于200),每个数字在单独的行中,请打印它们的总和。
示例输入:
2
3
输出:5
所以我写了一个关于这个问题的程序。代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int input1, input2, sum;
printf("Enter two natural numbers\n");
scanf("%d", &input1);
scanf("\n%d", &input2);
if ((input1>0&&input1<=200) && (input2>0&&input2<=200))
{
sum = input1 + input2;
printf("%d", sum);
}
return 0;
}
但是SPOJ拒绝这个答案是错误的答案。
后来我在idone检查了这个。
但是我无法检测到这个答案出了什么问题,正如预期的那样,它给出了上述问题给出的相同输出。 如果我错了,请纠正。
答案 0 :(得分:1)
第一个印刷声明
printf("enter two natural numbers\n");
第二次
scanf("%d",&input1);//Press Enter
第三个
scanf("%d",&input2);//Press Enter
最后
printf("\n%d",sum);
答案 1 :(得分:0)
首先,删除printf语句,因为它不需要,并且会破坏SPOJ给出的预期I / O.
接下来,scanf
中不需要换行符。您可以直接撰写scanf("%d %d", &input1, &input2);
。另一种方法是将scanf
语句两次写为:
scanf("%d", &input1);
scanf("%d", &input2);
最后,如果输入边界由SPOJ给出,您也可以删除if
语句。