为什么提交OJ时Wrong Answer?

#include <stdio.h>
int main()
{
int a, b;
int t=2;
while(t--){
scanf("%d %d",&a,&b);
printf("%d\n",a+b);
}
return 0;
}
Sample Input

1 5
10 20

Sample Output

6
30

如果你的题目要求输入组数,你可以使用t来限制输入的组数:不过要这样:

#include <stdio.h>
int main()
{
    int a, b,c[20];
    int t,i;
printf("Please input t:");
scanf("%d",&t);
i = t;
while(i--)
{
scanf("%d %d",&a,&b);
c[i] = a+b;
}
for(i=t-1;i>=0;i--)
printf("%d\n",c[i]);
    return 0;
}

实际上,从输入输出样例来看,这个题目并未对输入输出的组数做限制,也就是说程序要求可以输入若干组,你写的只能输入两组,报错原因应该就在于此(个人见解)。这个可以直接写成这样:

#include<stdio.h>
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
printf("%d\n",a+b);
}

这样不会有输入输出组数的限制了!

温馨提示:内容为网友见解,仅供参考
无其他回答

自己电脑运行程序没有问题,但oj上却wronganswer的常见原
首先,边界数据处理不当是最常见的问题之一。编程时往往关注核心逻辑,忽略边界情况的处理。忽略特殊值或极端值可能导致程序在OJ上输出错误结果,而本地环境中却能侥幸通过。其次,编译器差异也会影响程序的正确性。不同的编译器在语法解析、优化处理等方面可能存在差异,这些差异可能导致程序在本地环境正确...

oj上显示wrong answer什么原因
oj上显示wrong answer最常见的原因是边界数据没考虑,低估数据强度,漏看数据范围。其次是编译器差异。然后是系统差异。正式比赛选手机器跟判题都是同配置同软件版本,平时训练很难保证。总之看AC率和绝对数:AC绝对数越多坑的几率越低。AC率越高,犯低级错误的概率越高。

北邮OJ 373题 WrongAnswer 我的代码错在哪?
先不看算的对不对,根据input的要求,一行最多20个字母,而你的程序没有对这块进行处理,所以在使用系统的样本数据时,可能会导致输入的数据不全,所以会Wrong Answer啦。建议:每次读取之后判断最后一个字符是不是‘E’,如果是就可以继续往下走去计算了,如果不是还要继续读取字符。

在北邮oj上为什么是wrong answer?(一个是我编的程序的结果,另一个是o...
缺少了个换行符号,并且不需要写上" system("pause") ",如果写了上去自然答案也会输出这一句,就错了。另外如果回答得不对楼主可以贴上题目以及代码么?这样方便为你解决问题 希望可以帮到楼主。

在本地没错 在oj上却说 wrong answer
一般来说,这种题目都需要一次输入所有,然后再一起输出,你这种一边一边输出的都不满足条件

为什么提交OJ时Wrong Answer?
这个题目并未对输入输出的组数做限制,也就是说程序要求可以输入若干组,你写的只能输入两组,报错原因应该就在于此(个人见解)。这个可以直接写成这样:include<stdio.h>int main(){int a,b;while(scanf("%d%d",&a,&b)!=EOF)printf("%d\\n",a+b);}这样不会有输入输出组数的限制了!

hduOJ的2000题,为什么我的代码是wrong answer?
1.对输入的处理。输入3个字符是分不开的,也就是你应该把他们当做一个字符串读进来用cin>>ch;而不是cin>>ch[0]>>ch[1]>>ch[2];2.对结束的判断不对,测试数据条数是不定的,你全部都按10条处理了。改成这样试试:include <iostream> using namespace std;void swap(char&,char&);int ...

杭电OJ题目2034,我的答案正确却总是wrong answer
再就是定义的数组范围,也是一个容易出错的,这些是我做题发现的一些,一般提交错误,大多数情况还是算法的问题,因为在检查你的程序的时候,是很多数据,而且边界条件也要满足,自己多测试下,看看算法对不对,自己喜欢它,就坚持下去。杭电的输入要判断文件结束.详见杭电acm主页第一栏F.A.Q P.S.新用...

为什么编译器上运行正确但oj显示wrong answer?
数组的下标从 0 起算。例如,二月 ,下标是 1, mom[1]=29;你可以这样修改:声明和初始化:int mon[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};增加一个元素,让 i=0, 即0月0天,把 一月 放到 mom[1],二月放到 mom[2]...这样你就不用改下标,也不用改 for(int i=...

武汉大学OJ难度为1的一道ACM题目,总是wrong answer。很想知道原因。谢谢...
你的代码能AC呀,我改后的程序:include<stdio.h>#include<string.h>#include<ctype.h>char buf[5005];\/\/ ACM 1055int main(){int len;int i;while(1){gets(buf);if(strcmp( buf, "START") == 0){gets(buf);len = strlen(buf);for(i = 0; i < len; ++ i){if( isupper(buf...

相似回答