北邮 OJ 373题 WrongAnswer 我的代码错在哪?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了北邮 OJ 373题 WrongAnswer 我的代码错在哪?相关的知识,希望对你有一定的参考价值。

#include <iostream>
using namespace std;
int main ()

int w,l,n,m;
char a[25];
w=0;l=0;n=0;m=0;
cin>>a;
while (true)

if (a[n]=='W')
w++;
else if (a[n]=='L')
l++;
if (w>=11||l>=11)

if((w-l)<2&&(w-l)>-2)
continue;
else

cout<<w<<':'<<l<<endl;
w=0;l=0;


if (a[n]=='E'||a[n]=='\0')

cout<<w<<':'<<l<<endl;
w=0;l=0;
break;

n++;

cout<<endl;
m=0;
while (true)

if (a[m]=='W')
w++;
else if (a[m]=='L')
l++;
if (w>=21||l>=21)

if((w-l)<2&&(w-l)>-2)
continue;
else

cout<<w<<':'<<l<<endl;
w=0;l=0;


if (a[m]=='E'||a[m]=='\0')

cout<<w<<':'<<l<<endl;
break;

m++;


http://acm.bupt.edu.cn/onlinejudge/newoj/showProblem/show_problem.php?problem_id=373

参考技术A 先不看算的对不对,根据input的要求,一行最多20个字母,而你的程序没有对这块进行处理,所以在使用系统的样本数据时,可能会导致输入的数据不全,所以会Wrong Answer啦。

建议:每次读取之后判断最后一个字符是不是‘E’,如果是就可以继续往下走去计算了,如果不是还要继续读取字符。追问

首先感谢你的回答,现在这个问题我搞明白了,不是“一行最多20个字母”的问题,问题在于“多行”也就是说回车之后的字母也要和前面的算到一起。这个没有处理。所以WA,目前还在学习解决中。

追答

是啊,我说的就这个意思啊。。可能说得不是那么明显。。超过20,就要处理一下,前后连在一起。。

在玩OJ时候的各种提示

1.Accepted,简称AC,代码已通过评测,意思就是这题你做完了,恭喜啊

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

2.Wrong Answer,简称WA,就是代码在运行时没有输出正确的答案。

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

3.Time Limit Exceeded,简称TLE,超时,就是你的代码运行时间过长。超出了限定时间。

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

4.Memory Limit Exceeded,简称MLE,超内存,程序运行的过程中内存超过了限制内存。

5.Output Limit Exceeded,简称OLE,程序产生了不必要的输出。

6.Runtime Error,简称RE,在运行过程中发生了错误,比如除以0,等等

7.Presentation Error,简称PE,输出格式错误,至于格式就是换行符,制表符和空格的问题。

8.Compile Error,简称CE,编译器在编译的过程中出错了,一般是代码格式的问题。

以上是关于北邮 OJ 373题 WrongAnswer 我的代码错在哪?的主要内容,如果未能解决你的问题,请参考以下文章

北邮OJ的难度如何,是否只适合新手训练??

北邮OJ 97. 二叉排序树

北邮OJ 100. 二叉树的层数

常见OJ评判结果对照表

在哪个学校的oj上做题比较好?

ACM OJ反馈结果大全