逆序存放字符串,怎么没有输出结果啊?
#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;
}
} #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;
} 永恒的蓝色梦想 发表于 2020-12-10 12:24
不懂,,,
#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;
}
} #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;
} 风过无痕1989 发表于 2020-12-10 13:25
好的已解决 {:5_110:}
页:
[1]