【注:本程序验证是使用vs2013版】
#include <stdio.h> #include <string.h> #include <stdlib.h> /* 这里注意: 如果数组作为函数参数,数组形参退化为指针(主要是为了高效) 所以此处形参 *src 、 src[]、 src[1] 的实际效果一样 */ int sort_array(int *src, int length){ int i, j, temp, ret; int *from = src; //这里是否设置成全局变量更好? if (from == 0){ return -1; } for (i = 0; i < length - 1; i++){//选择法排序 for (j = i + 1; j < length; j++){ if (from[i] > from[j]){ temp = from[j]; from[j] = from[i]; from[i] = temp; } } } return 0; } int main(void){ int a[] = { 10, 7, 1, 9, 4, 6, 7, 3, 2, 0 }; int i = 0; int length = sizeof(a) / sizeof(a[0]); int ret = 0; printf("排序前"); for (i = 0; i < length; i++){ printf("%d ", a[i]); } printf("\n");
ret = sort_array(a, length);//参数:数组名、需要排序的长度 if (ret != 0){ return; } printf("排序后"); for (i = 0; i < length; i++){ printf("%d ", a[i]); }
printf("\n"); system("pause"); return 0; }
原文:https://www.cnblogs.com/wlstm/p/11105489.html