C程序设计第六章作业 2

程序员成长之旅 · 程序员成长之旅/C语言/习题(C语言程序设计)/第六章习题 · 216 字

问:

用选择法对10个数排序

参考:演示 选择法排序 算法

答:

#include<stdio.h>

int main() {

int i = 0, j = 0;

int Num[11] = { 56463,124,3211,3543,124,135,6124,751,324,51 };

int Min = 0, flag = 0, Temp = 0;

for (i = 0; i < 10; i++) {

Min = Num[i];//初始值设为正在运行的数

flag = i;//因为后面依赖“flag”做交换 所以献给一个初始值  防止两个数据一样时出错

for (j = i; j < 10; j++) {

if (Num[j] < Min) {

Min = Num[j];

flag = j;//记录当前位置

}

}

//进行交换操作

Temp = Num[i];

Num[i] = Min;

Num[flag] = Temp;

}

for (i = 0, j = 1; i < 10; i++, j++) {

printf("%9d\t", Num[i]);

if (j % 5 == 0) {

printf("\n");

}

}

}

运行结果: