用C语言完成有一个数组arr,存放了10个整数,创建函数min_fun( )求数组arr中元素的最小值的下标值和次最小值的下标,最终在主函数中输出arr数组中的最小值和次最小值。 提示:因为函数只能返回一个值,所以使用全局变量在函数之间传递值。
时间: 2024-02-13 10:00:40 浏览: 167
好的,我明白了。以下是用C语言实现的代码:
```c
#include <stdio.h>
int arr[10] = {3, 2, 5, 6, 1, 8, 9, 7, 4, 0}; // 定义全局数组 arr
int min_index = 0; // 定义全局变量 min_index,存放最小值的下标
int second_min_index = 0; // 定义全局变量 second_min_index,存放次小值的下标
void min_fun() {
for(int i = 1; i < 10; i++) { // 遍历数组
if(arr[i] < arr[min_index]) { // 如果当前元素比最小值还小
second_min_index = min_index; // 将最小值下标给次小值下标
min_index = i; // 更新最小值下标
}
else if(arr[i] < arr[second_min_index]) { // 如果当前元素比次小值小
second_min_index = i; // 更新次小值下标
}
}
}
int main() {
min_fun(); // 调用函数求最小值和次小值的下标
printf("arr数组的最小值为:%d,下标为:%d\n", arr[min_index], min_index);
printf("arr数组的次小值为:%d,下标为:%d\n", arr[second_min_index], second_min_index);
return 0;
}
```
这个程序会输出:
```
arr数组的最小值为:0,下标为:9
arr数组的次小值为:1,下标为:4
```
这样就完成了题目要求的功能。
阅读全文