我这个问题该怎么解决啊?

img

img

供参考,指针写法:

#include<stdio.h>
void reverse(char s[])
{
    char* p = s, c;
    while (*p) p++;
    p--;          
    if (s < p)
    {
        c = *s;
        *s = *p; 
        *p = '\0'; 
        reverse(s + 1);
        *p = c;   
    }
}
int main()
{
    char s[100];
    gets(s);
    reverse(s);
    puts(s);
    return 0;
}

数组写法:

#include<stdio.h>
void reverse(char s[]) 
{
    int len = strlen(s);
    if(len <= 1)
        return ;
    else {
        char tmp = s[0];
        s[0] = s[len - 1];
        s[len - 1] = '\0';
        reverse(s + 1);
        s[len - 1] = tmp;
    }
}
int main()
{
    char s[100];
    gets(s);
    reverse(s);
    puts(s);
    return 0;
}