#include<stdio.h> #include<stdlib.h> #define random(x) (rand()%x) #define lenre 1 #define lenpa 10 void print(int[], int); void sort(int[], int); void main() { int result[lenre] = {0}; int params[lenpa]; //int params[lenpa] = {0}; int i; memset(result, 0 ,sizeof(result)/sizeof(result[0])); for(i = 0; i < lenpa; i++) { params[i] = random(100); } printf("初始值:"); print(params, lenpa); for(i = 0; i < lenpa ; i++) { if(i < lenre){ result[0] = params[i]; }else{ if(result[0] < params[i]) { result[0] = params[i]; }//else{ // continue; //} } printf("第 %d 趟排序前:", (i+1)); print(result, lenre); sort(result, lenre); printf("第 %d 趟排序后:", (i+1)); print(result, lenre); } printf("取值top(%d)结果:", lenre); print(result, lenre); } void print(int a[], int z) { int x; for(x=0;x<z;x++) { printf("%d ",a[x]); } printf("\n"); } void sort(int result[], int len) { int z; for(z = 0; z < len; z++) { if(z + 1 <= len && result[z] > result[z+1]) { int temp = result[z]; result[z] = result[z + 1]; result[z + 1] = temp; }else { break; } } }
运行结果:
初始值:41 67 34 0 69 24 78 58 62 64
第 1 趟排序前:41 0 0 0 0
第 1 趟排序后:0 0 0 0 41
第 2 趟排序前:67 0 0 0 41
第 2 趟排序后:0 0 0 41 67
第 3 趟排序前:34 0 0 41 67
第 3 趟排序后:0 0 34 41 67
第 4 趟排序前:0 0 34 41 67
第 4 趟排序后:0 0 34 41 67
第 5 趟排序前:69 0 34 41 67
第 5 趟排序后:0 34 41 67 69
第 6 趟排序前:24 34 41 67 69
第 6 趟排序后:24 34 41 67 69
第 7 趟排序前:78 34 41 67 69
第 7 趟排序后:34 41 67 69 78
第 8 趟排序前:58 41 67 69 78
第 8 趟排序后:41 58 67 69 78
第 9 趟排序前:62 58 67 69 78
第 9 趟排序后:58 62 67 69 78
第 10 趟排序前:64 62 67 69 78
第 10 趟排序后:62 64 67 69 78
取值top(5)结果:62 64 67 69 78