用C++,定义一个浮点型数组,含20个元素,从键盘上输入20个浮点数给这个数组,把这些数放到磁盘文本文件中,然后再从这个文件中读取这些数据到另一个数组中并输出。求出这些数中的最大值和最小值,以及它们再这20个数中的位置(序号)并输出,最后再从小到大排序输出20个浮点数。
时间: 2023-07-16 09:11:58 浏览: 114
c语言+从键盘输入10个无序的整数,存放在数组中,找出数组中最大值与最小值的所在的位置,并输出数组元素所在的位置与数组元素的值
5星 · 资源好评率100%
以下是实现代码:
```c++
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
const int SIZE = 20;
int main()
{
double arr[SIZE];
double arrCopy[SIZE];
// 从键盘输入20个浮点数
cout << "请输入20个浮点数:" << endl;
for (int i = 0; i < SIZE; i++) {
cin >> arr[i];
}
// 将这些数放到磁盘文本文件中
ofstream outFile("data.txt");
for (int i = 0; i < SIZE; i++) {
outFile << arr[i] << " ";
}
outFile.close();
// 从文件中读取这些数据到另一个数组中并输出
ifstream inFile("data.txt");
for (int i = 0; i < SIZE; i++) {
inFile >> arrCopy[i];
cout << arrCopy[i] << " ";
}
inFile.close();
cout << endl;
// 求出这些数中的最大值和最小值,以及它们再这20个数中的位置(序号)并输出
double maxNum = arr[0];
double minNum = arr[0];
int maxIndex = 0;
int minIndex = 0;
for (int i = 1; i < SIZE; i++) {
if (arr[i] > maxNum) {
maxNum = arr[i];
maxIndex = i;
}
if (arr[i] < minNum) {
minNum = arr[i];
minIndex = i;
}
}
cout << "最大值为:" << maxNum << ",在第" << maxIndex + 1 << "个位置" << endl;
cout << "最小值为:" << minNum << ",在第" << minIndex + 1 << "个位置" << endl;
// 从小到大排序输出20个浮点数
sort(arrCopy, arrCopy + SIZE);
cout << "排序后的数组为:" << endl;
for (int i = 0; i < SIZE; i++) {
cout << arrCopy[i] << " ";
}
cout << endl;
return 0;
}
```
注意事项:
- 使用 `ofstream` 类写入文件,使用 `ifstream` 类读取文件。
- 求出最大值和最小值的过程中,需要记录最大值和最小值的位置(序号)。
- 使用 `sort` 函数对数组进行排序,需要包含头文件 `<algorithm>`。
阅读全文