Omega. 发表于 2020-12-10 12:24:45

逆序存放字符串,为什么没有输出结果?

#include<stdio.h>
#include<string.h>
int main()
{
      int x;
      char a, change(char[],int);
      gets(a);
      x=strlen(a);
      change(a,x);
      puts(a);
      return (0);
      
}

char change(char a[],int x)
{
      int i;
      char t;
      for(i=0;i<x/2;i++)
                {t=a;
                a=a;
                a=t;
                }
      
}

风过无痕1989 发表于 2020-12-10 13:27:40

#include<stdio.h>
#include<string.h>
int main()
{
      char change(char[], int);
      int i,x;
      char a;
      gets_s(a);
      x = strlen(a);
      change(a, x);
      for(i = 0;i <= x;i++)   // 经过交换后,原数组末尾的结束标志 '\0' 被交换到了第 1 个元素,不能再 puts() 输出
                printf("%c",a);
      printf("\n");
      return (0);

}

char change(char a[], int x)
{
      int i;
      char t;
      for (i = 0;i<x / 2;i++)
      {
                t = a;
                a = a;
                a = t;
      }
      return 0;
}
页: [1]
查看完整版本: 逆序存放字符串,为什么没有输出结果?