将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。请问这个程序哪两地方有错?谢谢了

2025-02-24 04:28:05
推荐回答(3个)
回答1:

for(i=0; ifor(j=i+2; jif( a[i]>a[j] )
printf("\n");可以不要puts(a)会自动换行

回答2:

排序算法写错了

for(i=0; i<=k-2; i+=2)
for(j=0; jif( a[j]>a[j+2] )
{ t=a[j]; a[j]=a[j+2]; a[j+2]=t; }

你再把冒泡排序算法的原理仔细研究一下吧。

回答3:

#include
#include
main()
{ char a[]="clanguage",t;
int i, j, k;
k=strlen(a);
for(i=0; i<=k-2; i+=2)
for(j=0; j<=k-2-i; j++ )
if( a[j]>a[j+2] )
{ t=a[j]; a[j]=a[j+2]; a[j+2]=t; }
puts(a);
printf("\n");
}