为什么我在dev c++测试没问题,上传都是WA

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

gebilaowang6 @ 2022-09-20 16:29:03

代码如下```c

include<stdio.h>

include<string.h>

int main() { char input[20]; fgets(input,20,stdin); int lenth=strlen(input); *(input+lenth-1)='\0'; for(;lenth>=0;lenth--) { printf("%c",input[lenth]); } }


by gebilaowang6 @ 2022-09-20 16:29:25

#include<stdio.h>
#include<string.h>
int main()
{
    char input[20];
    fgets(input,20,stdin);
    int lenth=strlen(input);
    *(input+lenth-1)='\0';
    for(;lenth>=0;lenth--)
    {
        printf("%c",input[lenth]);
    }
}

by Kedit2007 @ 2022-09-20 16:53:53

因为你打印了 '\0' ,本地看不出来,但是实际上输出的东西并不对。

既然已经知道 strlen 求长度,可以直接从长度减一处开始倒序遍历。

同时,如果你使用 C++ 中的 string ,你可以选择使用下面的方式倒序遍历:

string s;

// ...

for (auto i = s.rbegin(); i != s.rend(); i++)
{
    cout << *i;
}

|