在下面给出的程序中,共有5处错误(包括语法错误和逻辑错误),请找出其中的错误,并改正之。本程序的功能是对a数组中的元素按从大到小的顺序排序。
原代码
#include <stdio.h>
#define N 10;
main()
{
int a[N]={2,17,8,3,24,53,82,1,29,101};
int i,j,k,t;
for(i=0;i<9;i++)
{ k=i;
for(j=i+1;j<10;j++)
if(a[j]<a[k]) k=j;
if(k=i)
{
t=a[j];
a[j]=a[i];
a[i]=t;
}
}
for(i=0;i<9;i++)
printf("%d ",a[i]);
}
修改后
#include <stdio.h>
#define N 10
main()
{
int a[N]= {2,17,8,3,24,53,82,1,29,101};
int i,j,k,t;
for(i=0; i<9; i++)
{
k=i;
for(j=i+1; j<10; j++)
{
if(a[j]>a[k])
k=j;
}
t=a[i];
a[i]=a[k];
a[k]=t;
}
for(i=0; i<10; i++)
printf("%d ",a[i]);
}