可以帮忙看看这个关于字符串的代码哪错了吗
把偶数长度的字符串前半部分降序排序 后半部分升序排序 交换前后部分再输出 例如 输入abcd9876 输出6789dcba#include <stdio.h>
#include <string.h>
int main()
{
char a[100],temp;
int i,n,j;
scanf("%s",a);
n=strlen(a);
char a1[n],a2[n];
if(strlen(a)%2==0)
{
for(j=0;j<n/2-1;j++)
for(i=0;i<n/2-1-j;i++)
if(a[i]<a[i+1]){temp=a[i];a[i]=a[i+1];a[i+1]=temp;}
for(j=0;j<n/2-1;j++)
for(i=n/2;i<n-1-j;i++)
if(a[i]>a[i+1]){temp=a[i];a[i]=a[i+1];a[i+1]=temp;}
for(j=0;j<n/2;j++)a1[j]=a[j];
for(i=n/2,j=0;i<n;i++,j++)a2[j]=a[i];
printf("%s\n",a1);
printf("%s\n",a2);
printf("%s",strcat(a2,a1));
}
return 0;
}
我这个输出总是6789?@dcba?@
求解救T T
[ 本帖最后由 正版索粒 于 2014-12-4 20:54 编辑 ]