逆向输出字符串,这个怎么解决?

img


img

我觉得我的没有问题,也能成功跑,怎么输入都没有问题啊,哪里出问题了。

把max定义为1001试试,因为题目里有个条件字符串长度<=1000,所以max定义1001以容纳1000个字符,字符数组最后一个位置用于容纳1000个字符长度的字符串的结尾字符空字符'\0', 修改如下:


#include <stdio.h>
#include <string.h>
#define max 1001
int main(void){
    
    char a[max];
    gets(a);
    int length=strlen(a);
//    printf("length=%d\n",length);
    for(int i=length-1;i>=0;i--){
        printf("%c",*(a+i));
    }
    
    printf("\n");
    return 0;
} 




img

数组 maxn 定义小了,题目最大长度为1000,但是字符串结尾的’\0’也要占一个空间,
所以一般可以多开十个位置,即 令 maxn = 1010

i>=length/2