#include <stdio.h> #include <stdlib.h> #define MAX_SIZE 101 /** * 交换两个数 宏定义方式 * @param x 交换数1 * @param y 交换数2 * @param t 临时变量 */ #define SWAP(x,y,t) ((t) = (x), (x) = (y), (y) = (t)) void sort(int list[],int n); int main(){ int i, n; int list[MAX_SIZE]; printf("请输入数组个数\n"); scanf("%d", &n); if(n < 1 || n > MAX_SIZE){ fprintf(stderr, "输入数组有误,程序将退出"); exit(EXIT_FAILURE); } for(i = 0; i < n; i++){ list[i] = rand() % 1000; printf("%d ",list[i]); } sort(list, n); printf("\n升序排序之后的数组为\n"); for(i = 0; i < n; i++){ printf("%d ", list[i]); } printf("\n"); return 0; } /** * @param list 待排序数组 * @param n 待排序数组大小 */ void sort(int list[], int n){ int i, j, min, temp; for(i = 0; i < n -1; i++){ min = i; //假设最小位置为第i个 for(j = i + 1; j < n; j++){ //遍历数组(i+1~n)项 if(list[j] < list[min]){ //如果有比这个项更小的 min = j; } } SWAP(list[i], list[min], temp); } }