#include "stdio.h" int second_max(int a[], int n) { /*********Begin**********/ /********** End **********/ } main() { void TestFunc(); int x[10]={12,-4,5,8,0,9,-3,10,6,2}; printf("this second max =%d\n", second_max(x, 10)); TestFunc(); } void TestFunc() { FILE *IN,*OUT; int i,b[10]; int o; IN=fopen("in.dat","r"); if(IN==NULL) { printf("Read File Error"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("Write File Error"); } for(i=0;i<10;i++) fscanf(IN,"%d",&b[i]); o=second_max(b,10); fprintf(OUT,"%d\n",o); fclose(IN); fclose(OUT); }
时间: 2023-07-23 18:23:35 浏览: 28
这段代码需要你来完成 second_max() 函数的编写,该函数用于找出一个整型数组中第二大的数,如果数组中不存在第二大的数,则返回 -1。
以下是 second_max() 函数的代码实现:
```c
int second_max(int a[], int n) {
int max = a[0]; // 最大值
int secondMax = -1; // 第二大的数,初始值为 -1
int i;
for (i = 1; i < n; i++) {
if (a[i] > max) {
secondMax = max; // 更新第二大的数
max = a[i]; // 更新最大值
} else if (a[i] < max && (secondMax == -1 || a[i] > secondMax)) {
secondMax = a[i]; // 找到了比第二大的数更大的数,更新第二大的数
}
}
return secondMax;
}
```
在 second_max() 函数中,我们定义了两个变量 max 和 secondMax,分别表示数组中的最大值和第二大的数。首先,我们将 max 初始化为数组中的第一个数,secondMax 初始化为 -1。然后,遍历数组中的每一个数,如果该数大于 max,则将 max 更新为该数,并将 secondMax 更新为原先的 max 值。如果该数小于 max 且大于 secondMax 或者 secondMax 为 -1,则更新 secondMax 为该数。最后,返回 secondMax 的值即可。
希望能够帮助到你!
相关推荐
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)