由于c语言中的数组的大小是固定的,因此在使用数组对数字进行排序时候需要提前在代码中定义数组的大小,每次对不同数目的数字进行排序都要修改代码,这大大地增加了执行的复杂程度,因此,我利用指针,在对n个数字进行排序时,提前输入将要进行排序的数的个数,来实现对n个数字的排序。
所使用的编译器为vs2022
代码如下:
#include#include int main(void) { int i=0; int* arr;//定义一个指针 int j, k, z; printf("请输入你输入数字的个数:"); scanf_s("%d", &i);//输入将要进行排序的数字的个数; arr = (int*)calloc(i, sizeof(int));//分配空间; printf("请输入要进行排序的数字"); for (j = 0; j < i; j++) { scanf_s("%d", &arr[j]); } printf("您输入的数字排序前为:"); for (j = 0; j < i; j++)//通过循环输出排序前输入的数字 { printf("%d ", arr[j]); } printf("n"); for (j = 0; j < i; j++)//通过循环进行排序 { for (k = j + 1; k < i; k++) { if (arr[j] > arr[k]) { z = arr[j]; arr[j] = arr[k]; arr[k] = z; } } } printf("排序后的结果为:"); for (j = 0; j < i; j++)//通过循环输出排序后的数字; { printf(" %d", arr[j]); } return 0; }



