用实参为数组名,形参为指针变量的方法定义长度为3的整型数组,采用函数调用实现按照从大到小的顺序排序。在主函数中输出排序前和排序后的数组。
时间: 2024-03-20 10:43:27 浏览: 58
调用形参为二维数组的函数
好的,这里是用指针变量作为形参的实现方式:
```c
#include <stdio.h>
// 定义一个函数,实现从大到小排序
void sortDesc(int *arr, int size) {
int temp;
for(int i=0; i<size-1; i++) {
for(int j=i+1; j<size; j++) {
if(*(arr+i) < *(arr+j)) {
temp = *(arr+i);
*(arr+i) = *(arr+j);
*(arr+j) = temp;
}
}
}
}
int main() {
int arr[3] = {3, 1, 2}; // 定义一个长度为3的整型数组
int size = sizeof(arr) / sizeof(arr[0]); // 数组的长度
printf("排序前的数组:");
for(int i=0; i<size; i++) {
printf("%d ", arr[i]); // 输出排序前的数组
}
printf("\n");
sortDesc(arr, size); // 调用函数进行排序
printf("排序后的数组:");
for(int i=0; i<size; i++) {
printf("%d ", arr[i]); // 输出排序后的数组
}
printf("\n");
return 0;
}
```
输出结果与上一个例子一样:
```
排序前的数组:3 1 2
排序后的数组:3 2 1
```
这个程序中,我们使用了一种不同的方式来实现数组的排序,即使用指针变量作为函数形参。在 `sortDesc` 函数中,我们使用了指针变量来访问数组元素,即 `*(arr+i)` 表示数组中第 `i` 个元素的值。其他部分的实现和上一个例子一致。
阅读全文