各位高手帮忙看看这个程序吧!
下面的是原来正确的程序#include <stdio.h>
void main()
{int i,j,min,temp,a[11];
printf("enter data:\n");
for (i=1;i<=10;i++)
{printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("\n");
printf("The orginal numbers:\n");
for (i=1;i<=10;i++)
printf("%5d",a[i]);
printf("\n");
for (i=1;i<=9;i++)
{min=i;
for (j=i+1;j<=10;j++)
if (a[min]>a[j]) min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
printf("\nThe sorted numbers:\n");
for (i=1;i<=10;i++)
printf("%5d",a[i]);
printf("\n");
}
输入1 16 5 98 23 119 18 75 65 81后按从小到大的排序是正确的,但把第15-21行改成
{min=a[i];
for (j=i+1;j<=10;j++)
if (min>a[j]) min=a[j];
temp=a[i];
a[i]=min;
min=temp;
}
后输入上面的数字出来的竟是1 5 5 18 18 18 18 65 65 81了,是什么原因啊?我这样改有什么不对啊?高手帮帮忙吧!不胜感激!!!