用C语言利用数组名作为实参,在主函数里调用函数f1实现对长度为10的整型数组赋初值,调用函数f2实现对数组元素按照从大到小的顺序排序,在主函数中输出排序前和排序后的数组元素。
时间: 2024-03-02 22:51:34 浏览: 93
好的,下面是代码实现:
```c
#include <stdio.h>
void f1(int arr[]) { // 定义函数f1对数组元素赋初值
for (int i = 0; i < 10; i++) {
arr[i] = 10 - i; // 对数组元素赋初值
}
}
void f2(int arr[]) { // 定义函数f2对数组元素按从大到小的顺序排序
int temp;
for (int i = 0; i < 9; i++) {
for (int j = i + 1; j < 10; j++) {
if (arr[i] < arr[j]) { // 如果前一个元素比后一个元素小,则交换位置
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
int main() {
int arr[10];
f1(arr); // 调用函数f1对数组元素赋初值
printf("排序前的数组元素为:\n");
for (int i = 0; i < 10; i++) {
printf("%d\t", arr[i]);
}
printf("\n");
f2(arr); // 调用函数f2对数组元素排序
printf("排序后的数组元素为:\n");
for (int i = 0; i < 10; i++) {
printf("%d\t", arr[i]);
}
printf("\n");
return 0;
}
```
代码解释:
1. 函数`f1`的形参是数组名`arr`,实参也是数组名`arr`,因为数组名在传参时会自动转换为指向数组首元素的指针。
2. 函数`f2`的形参也是数组名`arr`,实参也是数组名`arr`,因为数组名在传参时会自动转换为指向数组首元素的指针。
3. 在函数`f2`中使用选择排序算法对数组元素按从大到小的顺序排序。
4. 在`main`函数中,先定义长度为10的整型数组`arr`,然后调用函数`f1`对数组元素赋初值,输出排序前的数组元素,调用函数`f2`对数组元素排序,最后输出排序后的数组元素。
阅读全文