Omega. 发表于 2020-12-10 12:07:27

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

#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;
                }
       
}

永恒的蓝色梦想 发表于 2020-12-10 12:24:36

#include<stdio.h>



void f(void) {
        switch (char ch = getchar())
        {
        case '\r':
        case '\n':
        case '\0':
        case EOF:
                break;

        default:
                f();
                putchar(ch);
        }
}



int main(void) {
        f();
        return 0;
}

Omega. 发表于 2020-12-10 12:48:38

永恒的蓝色梦想 发表于 2020-12-10 12:24


不懂,,,

jitianmoshen 发表于 2020-12-10 13:08:11


#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;         //你的x-i当i= 0的时候x-i就越界了
      a=t;
    }      
}

风过无痕1989 发表于 2020-12-10 13:25:04

#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;
}

Omega. 发表于 2020-12-10 23:45:30

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


好的已解决 {:5_110:}
页: [1]
查看完整版本: 逆序存放字符串,怎么没有输出结果啊?