一个C语言题(改错)1

来源:百度知道 编辑:UC知道 时间:2024/06/06 10:28:24
将字符数组a中的下标值为偶数的元素从小到大排列,其他元素不变。程序有2处错误。
# include<stdio.h>
# include<string.h>
main()
{char a[]="clanguage",t;
int i,j,k;
k=strlen(a);
for(i=0;i<=k-2;i+=2)
for(j=i+2;j<=k;j++)
if(a[i]<a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
puts(a);
printf("\n");
}

2处简单的错误,请参考下面注释部分。
# include<stdio.h>
# include<string.h>
main()
{char a[]="clanguage",t;
int i,j,k;
k=strlen(a);
for(i=0;i<=k-2;i+=2)
for(j=i+2;j<=k;j++) //将j++改为j+=2
if(a[i]<a[j]) //将< 改为 >
{t=a[i];a[i]=a[j];a[j]=t;}
puts(a);
printf("\n");
}

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

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

for(i=0;i<=k-1;i+=2) /* k-2改为k-1 */
for(j=i+2;j<=k-1;j+=2) /* k改为k-1 */
if