C语言求助:为什么这样写本地可以过但提交就WA呢?

P5705 【深基2.例7】数字反转

zjr345 @ 2021-12-11 16:22:01

#include <stdio.h>

int main()
{
    int i=0;  char array[10];  float number;
    while( (number=getchar()) != '\n')
    {
        array[i]=number;
        i++;
    }
    i--;
    for(; i>=0;i--)
    {
        putchar(array[i]);
    }

    return 0;
}

by 一只大龙猫 @ 2021-12-11 16:28:45

@zjr345 getchar()返回的是char内型,但numberfloat内型。


by sheeplittlecloud @ 2021-12-11 16:29:49

同上


by sheeplittlecloud @ 2021-12-11 16:30:30

@zjr345 直接输入array再反着输出就能过。

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int i=0;  char array[10];  float number;
    cin>>array;
    i--;
    for(i=strlen(array)-1; i>=0;i--)
    {
        cout<<array[i];
    }

    return 0;
}

by 一只大龙猫 @ 2021-12-11 16:31:28

同时样例末尾貌似有一个奇怪的字符(ASCII 13),所以i--应为i-=2


by 一只大龙猫 @ 2021-12-11 16:32:12

#include <stdio.h>

int main()
{
    int i=0;  char array[10];  char number;
    while( (number=getchar()) != '\n')
    {
        array[i]=number;
        i++;
    }
    i-=2;
    for(;i>=0;i--)
    {
        putchar(array[i]);
    }

    return 0;
}

by zjr345 @ 2021-12-11 16:48:40

@一只大龙猫 谢谢大佬,但为什么我在本地使用i--才能输出正确答案,而上传提交i-=2才能AC呢?


by 一只大龙猫 @ 2021-12-11 16:51:37

@zjr345 你用的是什么系统?也许是linux的特性?


by zjr345 @ 2021-12-11 16:52:56

@一只大龙猫 emmmm就是普通的win10


by zjr345 @ 2021-12-11 16:54:26

@一只大龙猫 i--不是代表i-1吗?为什么要-2?


by 一只大龙猫 @ 2021-12-11 16:54:49

@zjr345 应该是换行符的锅。


| 下一页