c 本地能过 judge全TLE了

P1046 [NOIP2005 普及组] 陶陶摘苹果

buaaoh1 @ 2019-07-24 07:12:59

QAQ为什么


by buaaoh1 @ 2019-07-24 07:15:04

#include <stdio.h>

int main() {
    int arm = 0, apple = 0, height[10];
    int i = 0;

    while (1) {
        int num = 0;
        scanf("%d", &num);
        char c = getchar();
        height[i++] = num;
        if (c == '\n')
            break;
    }
    scanf("%d", &arm);

    for (i = 0; i < 10; i++) {
        if (arm + 30 >= height[i])
            apple++;
    }

    printf("%d", apple);

    //system("pause");
    return 0;
}

by ud2_ @ 2019-07-24 07:27:22

第一行包含 10 个 100 到 200 之间的整数

才 10 个为什么要用循环。


by Smallbasic @ 2019-07-24 07:45:11

while (1) {
    int num = 0;
    scanf("%d", &num);
    char c = getchar();
    height[i++] = num;
    if (c == '\n')
        break;
}

改成:

for (int i = 0; i < 10; ++i) {
     scanf("%d", &height[i]);
}

by buaaoh1 @ 2019-07-24 07:57:48

@Smallbasic AC!谢谢!

可是为啥这样本地就跑不过了...VS2015
本来就是这样写的但是因为本地不过所以换了上面那种 本地就过了


by buaaoh1 @ 2019-07-24 07:58:46

@sjx233 好有道理= =我是懒得打字啦...


by ud2_ @ 2019-07-24 08:02:34

@ooh1 随机生成数据时第 1 行后面会有多余的空格(懒得去掉),getchar() 就找不到换行符了。


by buaaoh1 @ 2019-07-24 08:11:09

@sjx233 原来如此!怪不得TLE了= =

可是为什么正常for输入我的VS2015本地不给反应...


by HHCY @ 2019-07-24 22:52:35

读入很有问题


by HHCY @ 2019-07-24 22:52:52

getchar scanf不要一起用


by liunianwangluo @ 2019-09-25 12:18:54

同样的问题,幸好有这个帖子,感谢


|