c语言 用选择法对10个整数从小到大排序

c语言 用选择法对10个整数从小到大排序我勾画的地方,为什么是i<N-1,还有最后那个for循环是,什么意思啊?为什么最后是输出a【i】而不是a【min】?请大佬解答

#include
void sort(int a[],int n) //选择排序
{
int i;
int j;
for(i=0;i<n;i++) //n个程序 排n-1次
{
int c=i;
for(j=i+1;j<n;j++) //从剩余的元素中,查找最小值,记住其下标。
{
if(a[c]>a[j])
{
c=j; //记住最小值的下标。
}
}
if(c !=i) //进行交换。
{
int temp = a[i];
a[i] = a[c];
a[c] = temp;
}
}
}
int main()
{
int a[10]={1,3,5,7,9,2,4,6,8,10};
sort(a,10);
int i;
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
getchar();
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-31
i<N-1的意思就是要先对前九个数的下标进行排序,当然也是要结合第二层比较大小的循环来看,你才能明白他的意思,所以边界条件设置为到N-1.简单的说就是前9个数都排序好了,10个数自然也就排好了。最后面的a[i]
循环就是依次输出排序好后的数。
第2个回答  2019-07-13
i<N-1的意思就是要先对前九个数的下标进行排序,当然也是要结合第二层比较大小的循环来看,你才能明白他的意思,所以边界条件设置为到N-1.简单的说就是前9个数都排序好了,10个数自然也就排好了。最后面的a[i] 循环就是依次输出排序好后的数。追答

书中有一个很明显的错误,最外层循环下面的数据交换应该是a[i ]和a[ min] 交换

第3个回答  2019-01-05
i<N-1的意思就是要先对前九个数的下标进行排序,当然也是要结合第二层比较大小的循环来看,你才能明白他的意思,所以边界条件设置为到N-1.简单的说就是前9个数都排序好了,10个数自然也就排好了。最后面的a[i]
循环就是依次输出排序好后的数。
相似回答