蒟蒻的困惑,为什么本地过了,测试全是WA

P1320 压缩技术(续集版)

君子不器 @ 2020-10-25 17:28:38

#include <cstdio>
#include <iostream>
using namespace std;

int main()
{
    int n, ans = 1;
    char a[40010];
    for (n = 0; n >= 0; ++n)
    {
        scanf_s("%c", &a[n]);
        if (a[n] == '\n')break;
    }
    for (int i = n; i < n * n; ++i)
        cin >> a[i];
    cout << n << ' ';
    if (a[0] != '0')
    {
        cout << 0 << ' ';
        for (int i = 1; i < n * n; ++i)
        {
            if (a[i] == a[i - 1])++ans;
            else cout << ans << ' ', ans = 1;
        }
    }
    else
    {
        for (int i = 1; i < n * n; ++i)
        {
            if (a[i] == a[i - 1])++ans;
            else cout << ans << ' ', ans = 1;
        }
    }
    cout << ans << ' ';
    return  0;
}

by CGDGAD @ 2020-10-25 17:41:53

@君子不器

本地过了

本地样例过没用。除非您有完整测试数据一个个对比过,没有“本地过了”这种说法。OJ上WA就是WA。

char a[40010];

请放到全局变量,放到函数里面会炸。


by CGDGAD @ 2020-10-25 17:48:51

话说您这个是什么写法啊(

scanf_s("%c", &a[n]);

by 君子不器 @ 2020-10-25 17:56:53

@NSObject 忘了改了,scanf_s在VS中使用的,防止数据过大会炸。主要我不知道哪里错了,下载的WA数据运行结果也是正确的。


by CGDGAD @ 2020-10-25 18:35:01

@君子不器 啊这(

我倒第一次听说scanf_s(


by 君子不器 @ 2020-10-25 21:16:21

@NSObject 所以大佬你现在知道了,能帮帮我运行一下找找哪里错了吗?只要把_s删除就能调试了


|