#include <stdio.h>
void main()
{
int a[10],i,j,min,temp;
for(j=0;j<10;j++)
scanf("%d",&a[j]);
for (i=0;i<9;i++)
{ for (min=i,j=i+1;j<10;j++)
if(a[min]<a[j])
temp=a[min];
a[min]=a[i];
a[i]=temp;}
{for (j=0;j<10;j++)
printf("%d ",a[j]);
}
}
哪错了?
if(a[min]<a[j])错误,应该是if(a[min]>a[j])才能“从小到大”排序。
从if后面的语句看,这不是“选择法”。选择法要这样写——
if(a[min]>a[j])
min=j;
if(min!=i)
temp=a[min},a[min]=a[i],a[i]=temp;