这在C中很容易实现。
一、将A中的数据作为调用函数B的参数,经过B处理后,返回到A。假定A为主函数main(),B为排序函数Sort(int a[],int n),在A中给数组a[]赋值,通过函数B进行排序,完成后返回到A。
#include #include #include #define MAXlen 100void Sort(int *x, int n) { //选择排序int i, j, min;int t;for (i = 0; i < n - 1; i++) { // 要选择的次数:0~n-2共n-1次 min = i; // 假设当前下标为i的数最小,比较后再调整 for (j = i + 1; j < n; j++) { //循环找出最小的数的下标是哪个if (*(x + j) < *(x + min)) { min = j; // 如果后面的数比前面的小,则记下它的下标}} if (min != i) { // 如果min在循环中改变了,就需要交换数据t = *(x + i);*(x + i) = *(x + min);*(x + min) = t;}}}int main() {int i;int iArr[MAXlen];srand((unsigned int)time(NULL));printf("\n排序前:\n");for(i = 0 ; i < MAXlen ; i++) {iArr[i] = (unsigned int)rand() % 1000;if(i % 10 == 0) printf("%\n");printf("%5d",iArr[i]);}printf("\n");Sort(iArr,MAXlen);printf("\n排序后:\n");for(i = 0 ; i < MAXlen ; i++) {if(i % 10 == 0) printf("%\n");printf("%5d",iArr[i]);}printf("\n\n");return 0;}
取消
评论