可以问问为什么会出现一个空行嘛,要怎么删掉

#include<stdio.h>
int main()
{
char ch[100];
int i=0,j=0,x=0,temp;
do
{
scanf("%c",&ch[x]);
x++;
}while(ch[x-1]!='\n');
j=x-1;
while(i<j)
{
temp=ch[i];
ch[i]=ch[j];
ch[j]=temp;
i++;
j--;
}
printf("%s",&ch);
return 0;
}

img

修改如下。do...while结束后,ch[x-1]=0,j=x-2

int main()
{
    char ch[100];
    int i=0,j=0,x=0,temp;
    do
    {
        scanf("%c",&ch[x]);
        x++;
    }while(ch[x-1]!='\n');
    ch[x-1] = 0;
    j=x-2;
    
    while(i<j)
    {
        temp=ch[i];
        ch[i]=ch[j];
        ch[j]=temp;
        i++;
        j--;
    }
    printf("%s",ch);
    return 0;
}

用gets()去获取输入的字符吧。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void Inverse(char str[], char ptr[]);
int main()
{
    char str[100];
    char ptr[100];
    gets(str);
    Inverse(str,ptr);
    printf("%s\n",ptr);
}
void Inverse(char str[], char ptr[]){
    int n=strlen(str);
    int i;
    for(i=0;i<=n;i++){
        ptr[i]=str[n-i-1];
    }
    ptr[i-1]='\0';
}