#include
#include
void insert(char* s,int n);
void inverse(char* s,int n);
int main()
{
char a[11000];
scanf("%s",a);
int len1 = strlen(a);
insert(a,len1);
int len2 = strlen(a);
inverse(a,len2);
puts(a);
return 0;
}
void insert(char* s,int n)
{
int count = 0;
for (int i = 0;iif ((i + 1) % 2 == 0)
{
for (int j = i + 1;j1) = *(s + j);
}
*(s + n - count) = '\0';
count++;
*(s + i + 1) = ' ';
}
}
}
void inverse(char* s,int n)
{
for (int i = 0; i 1 - i);
}
}
我的程序没有办法运行
你赋值的时候*(s+j+1)=*(s+j) 前面一个数赋给后面一个数 但是你循环到了第二次就将前面赋的值继续赋给后面的数所以造成了全是e 你应该从后往前赋值
先得到最末尾的依次往后赋值这样才不会发生被覆盖的情况