编写一个sort(int*x,n)函数,对数组里N个元素进行排列,按绝对值大小进行从小到大排列,编写主函数

2024-12-27 13:04:42
推荐回答(1个)
回答1:

#include #include // 选择插入法排序void sort(int a[], int n){ int i, j, k, tmp; for (i = 0; i < n; i++) { for (j = 0; j < i; j++) if (a[i] < a[j]) break; // 找到待插位置 tmp = a[i]; // 临时变量记录待插的值 // 移出插入空间 for (k = i; k > j; k--) a[k] = a[k - 1]; // 插入 a[j] = tmp; }}int main(){ int *a, n, i; scanf("%d", &n); // 输入数据数量 if (n > 0) { a = (int *)malloc(n * sizeof(int)); // 动态申请数组空间 // 输入数据 for (i = 0; i < n; i++) scanf("%d", &a[i]); // 排序 sort(a, n); // 输出排序后的结果 printf("After sorted the array is:"); for (i = 0; i < n; i++) printf("%d ", a[i]); printf("\n"); free(a); // 释放内存 } return 0;}