1条回答 默认 最新
- qfl_sdu 2021-06-18 08:43关注
代码如下:
# include <stdio.h> int main(void) { int i, j; //循环变量 int MinIndex; //保存最小的值的下标 int buf; //互换数据时的临时变量 int a[10]; int n =10;//存放数组a中元素的个数 //输入数据 printf("请输入%d个整数:\n",n); for (i = 0;i<n;i++) { scanf("%d",&a[i]); } for (i=0; i<n-1; ++i) //n个数比较n-1轮 { MinIndex = i; for (j=i+1; j<n; ++j) //每轮比较n-1-i次, 找本轮最小数的下标 { if (a[MinIndex] > a[j]) { MinIndex = j; //保存小的数的下标 } } if (MinIndex != i) /*找到最小数之后如果它的下标不是i则说明它不在最左边, 则互换位置*/ { buf = a[MinIndex]; a[MinIndex] = a[i]; a[i] = buf; } } printf("最终排序结果为:\n"); for (i=0; i<n; ++i) { printf("%d ", a[i]); } printf("\n"); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报