1 #include<stdio.h> 2 int main() 3 { 4 int i; // i 作为数组的下标 5 int j; // j 作为找到最小值的下标 6 int k; // k 用以存放此次循环中的最小值下标 7 int temp; // temp 作为中间变量 8 int arry[10]; // 申请10个数组内存 9 int op; // op作为输入数的大小 10 11 // 提示用户输入数组的大小 12 printf("please input less than 10 integer:"); 13 scanf_s("%d", &op); 14 15 // 通过循环赋值 16 for (i = 0; i < op; i++) 17 { 18 printf("please input %d integer:", i + 1); 19 scanf_s("%d", &arry[i]); 20 } 21 22 // 选择排序法 23 for (i = 0; i < op; i++) 24 { 25 k = i; //假设此次循环中最小值为当前值 26 for (j = i + 1; j < op; j++) 27 { 28 if (arry[j] < arry[k]) //假设当前的最小值与后值比较 29 { 30 k = j; //若后值小,则交换下标 31 } 32 } 33 34 if (k != i) //比较后,若此次循环中最小值并非当前值 35 { 36 temp = arry[i]; // 将此次循环中的最小值与 arry[k] 交换 37 arry[i] = arry[k]; 38 arry[k] = temp; 39 } 40 } 41 42 // 输出 43 for (i = 0; i < op; i++) 44 { 45 printf("%d ", arry[i]); 46 } 47 }
题目:使用键盘输入的一个不大于10的整数,用以确定数组的大小,再将这个数组用选择排序法由小到大排序
原文:https://www.cnblogs.com/Maackia/p/14774090.html