用C语言利用指针数组对五个变量从小到大排序并输出
时间: 2023-07-26 18:43:22 浏览: 136
连接链表并保持由小到大的次序-C语言指针数组与指针的指针
好的,以下是代码实现:
```c
#include <stdio.h>
void sort(int* arr[], int len);
int main() {
int a = 5, b = 2, c = 7, d = 1, e = 9;
int* arr[5] = {&a, &b, &c, &d, &e};
sort(arr, 5);
for(int i = 0; i < 5; i++) {
printf("%d ", *arr[i]);
}
return 0;
}
void sort(int* arr[], int len) {
int temp;
for(int i = 0; i < len - 1; i++) {
for(int j = i + 1; j < len; j++) {
if(*arr[i] > *arr[j]) {
temp = *arr[i];
*arr[i] = *arr[j];
*arr[j] = temp;
}
}
}
}
```
解释一下代码:
首先,我们定义了 5 个变量并将它们的地址存储到指针数组 `arr` 中。
然后,我们调用 `sort` 函数进行排序。该函数采用选择排序算法,依次比较数组中的元素,将较小的元素放在前面,较大的元素放在后面。
最后,我们遍历数组并输出排好序的结果。
注意:在本例中,我们使用了函数 `sort` 对指针数组进行排序,这种方式可能不是最优的。在实际编程中,我们可以选择其他更高效的排序算法,或者使用库函数进行排序。
阅读全文