问题标题: 酷町堂:2712 40分哪错了???????????????????????????????????????????

0
0
已解决
郑凝溪
郑凝溪
初级光能
初级光能
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
    char a[15],b[15],c[15];
    cin>>a>>b;
    gets(c);
    int l=strlen(b); 
    cout<<b<<" "<<l;
    return 0;
}
问各位大佬哪错了???????????????

 


0
已采纳
江昊
江昊
修练者
修练者

郑同学,你好。

关于这道题,我试着运行了一下,扣掉的60分的原因是 “Runtime Error”;

然后这道题你的写法没什么问题,错误原因只是因为你的  a、b、c 数组定义的太小了,导致数组越界。

0
0
王子轩
王子轩
新手光能
新手光能

把gets(c):去掉就可以了

0
0
杨陈卓
杨陈卓
新手天翼
新手天翼
    char a[110],b[110],c[110];

这样定义就对了,这道题测试点有问题,一般来说多定义十个就可以防止数组越界,我试了一下定义成:char a[25],b[25],c[25];

也只能得90分。数据范围给的是15,你定义成:a[15],b[15],c[15],不保险,很容易导致数组越界,Runtime Error,就是数组越界,只要有Runtime Error的测试点,就说明你数组定义小了。

 

我要回答