1.)本程序用于查找一组数中呈现峰值的数及其个数。所谓呈现峰值的数,是指满足下列条件的数组元素a[i]: a[i-1]<a[i] 且 a[i]>a[i+1] 或者 a[i-1]>a[i] 且 a[i]<a[i+1]。其中:1<=i<=n-1 例如,数组: a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] 12 13 21 34 32 41 24 12 11 中a[3]既大于a[2]又大于a[4],a[4]既小于a[3]又小于a[5]。故a[3]、a[4]、a[5]即为正、负峰值(不含第0个和最后一个) 运行时可输入如下数据调式程序: 12 13 21 34 32 41 24 12 11 //3个峰值 11 12 13 14 15 16 17 18 19 //0个峰值 要求: 1.在主函数中,数组a[10]中的数据由文件file1.txt中读入后由屏幕输出;由主函数调用voud find(int a[ ],int b[ ])函数,找出结果,并存入数组b中,并输出查找的结果(包括文件输出和屏幕输出)输出的文件为file2.txt。 2.voud find(int a[ ],int b[ ])函数根据以上算法找出峰值,并返回峰值的个数 3.【注意】 将源程序以“学号_3.cpp”为文件名。
时间: 2023-10-06 19:06:45 浏览: 26
根据题目要求,我们可以先编写一个从文件中读入数据到数组的函数 `readFromFile`,然后再编写一个查找峰值的函数 `find`,最后在 `main` 函数中调用这两个函数完成程序。
下面是示例代码:
```cpp
#include <iostream>
#include <fstream>
using namespace std;
void readFromFile(int a[]) {
ifstream fin("file1.txt");
for (int i = 0; i < 10; i++) {
fin >> a[i];
cout << a[i] << " ";
}
cout << endl;
fin.close();
}
int find(int a[], int b[]) {
int cnt = 0;
for (int i = 1; i < 9; i++) {
if ((a[i] > a[i - 1] && a[i] > a[i + 1]) || (a[i] < a[i - 1] && a[i] < a[i + 1])) {
b[cnt++] = a[i];
}
}
return cnt;
}
int main() {
int a[10], b[10];
readFromFile(a);
int cnt = find(a, b);
ofstream fout("file2.txt");
fout << "共找到 " << cnt << " 个峰值:" << endl;
cout << "共找到 " << cnt << " 个峰值:" << endl;
for (int i = 0; i < cnt; i++) {
fout << b[i] << " ";
cout << b[i] << " ";
}
fout.close();
cout << endl;
return 0;
}
```
在程序中,我们首先定义了两个函数:`readFromFile` 和 `find`,分别用于从文件中读入数据到数组并输出,以及查找峰值并存入数组 `b` 中。
在 `main` 函数中,我们首先调用 `readFromFile` 函数从文件中读入数据到数组 `a` 中,并将读入的数据输出到屏幕上。然后调用 `find` 函数查找峰值,将峰值存入数组 `b` 中,并统计峰值的个数。最后将查找结果输出到屏幕和文件中。
需要注意的是,在查找峰值时,我们只需要考虑数组下标为 1 到 8 的元素,因为第 0 个和最后一个元素不可能是峰值。同时,我们可以根据题目中的定义,将峰值分为正峰值和负峰值,即只需要满足一个条件即可。在查找完成后,我们需要将查找到的峰值个数和峰值本身分别输出到文件和屏幕上。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)