(C语言)用指向指针的指针的方法对n个整数排序并输出.要求将排序单独写成一格函数.n个整数在主函数中输入,最后在主函数中输出.

用指向指针的指针的方法对n个整数排序并输出.要求将排序单独写成一格函数.n个整数在主函数中输入,最后在主函数中输出.

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void sort(int** arr, int n) {
	int tepm;
	for (int i = 0; i < n; ++i) {
		int min = i;
		for (int j = i + 1; j < n; ++j) {//a[i]依次和a[i]之后的元素作比较,记录较小的下标
			if (**(arr + j) < **(arr + min)) {
				min = j;
			}
		}
		//当min等于i时,说明a[i]就是a[i]之后所有元素中最小的
		// min不等于i时说明a[i]不是a[i]之后所有元素中最小的,最小的为a[mid],将他们的值交换
		if (min != i) {
			tepm = **(arr + i);
			**(arr + i) = **(arr + min);
			**(arr + min) = tepm;
		}
	}
	for (int i = 0; i <n ; ++i) {
		printf("%d  ", **(arr + i));
	}
	printf("\n");
}
void main() {
	int n;
	printf("请输入n的值\n");
	scanf("%d",&n);
	int* a = (int*)malloc(n * sizeof(int));
	int** arr= (int**)malloc(n * sizeof(int*));
	for (int i = 0; i < n; ++i) {
		*(arr + i) = a + i;
	}
	for (int i = 0; i < n; ++i) {
		printf("请输入数组的第%d个数\n", i + 1);
		scanf("%d", *(arr + i));
		system("cls");
	}
	printf("你输入的数组为:\n");
	for (int i = 0; i < n; ++i) {
		printf("%d  ", **(arr + i));
	}
	printf("\n");
	sort(arr, n);
	system("pause");
}

(C语言)用指向指针的指针的方法对n个整数排序并输出.要求将排序单独写成一格函数.n个整数在主函数中输入,最后在主函数中输出.