输入 10 个数,按绝对值从大到小排序后输出。(要求用指针做)c语言编程
时间: 2023-11-27 12:49:12 浏览: 226
c语言+从键盘输入10个无序的整数,存放在数组中,找出数组中最大值与最小值的所在的位置,并输出数组元素所在的位置与数组元素的值
5星 · 资源好评率100%
以下是使用指针进行绝对值排序的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h> // 包含 abs 函数
void sort(int *arr, int n);
int main() {
int n, i;
printf("请输入数字个数:");
scanf("%d", &n);
int arr[n];
int *p = arr;
printf("请输入数字:");
for (i = 0; i < n; i++) {
scanf("%d", p + i);
}
sort(p, n);
printf("排序后的数字:");
for (i = 0; i < n; i++) {
printf("%d ", *(p + i));
}
printf("\n");
return 0;
}
void sort(int *arr, int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (abs(*(arr + i)) < abs(*(arr + j))) {
temp = *(arr + i);
*(arr + i) = *(arr + j);
*(arr + j) = temp;
}
}
}
}
```
使用指针可以使代码更加简洁,也更加高效。在输入数据时,我们使用指针 p 指向数组 arr 的首位,然后通过 `p + i` 访问数组的每个元素。在排序时,我们使用 `*(arr + i)` 访问数组的每个元素,并使用 `abs()` 函数计算其绝对值。
阅读全文