定义一个浮点型数组,含20个元素,从键盘上输入20个浮点数给这个数组,把这些数放到磁盘文本文件中,然后再从这个文件中读取这些数据到另一个数组中并输出。求出这些数中的最大值和最小值,以及它们在这20个数中的位置(序号)并输出,最后再从小到大排序输出20个浮点数。
时间: 2023-12-03 18:44:59 浏览: 88
以下是使用C++实现的代码:
```cpp
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int main() {
const int size = 20;
double arr[size];
double arrCopy[size];
// 从键盘输入20个浮点数
cout << "请输入20个浮点数:" << endl;
for (int i = 0; i < size; i++) {
cin >> arr[i];
arrCopy[i] = arr[i];
}
// 把这些数放到磁盘文本文件中
ofstream fout("data.txt");
for (int i = 0; i < size; i++) {
fout << arr[i] << " ";
}
fout.close();
// 从文件中读取这些数据到另一个数组中并输出
ifstream fin("data.txt");
for (int i = 0; i < size; i++) {
fin >> arr[i];
cout << arr[i] << " ";
}
fin.close();
cout << endl;
// 求出最大值和最小值,以及它们在这20个数中的位置(序号)并输出
double maxVal = arr[0];
double minVal = arr[0];
int maxIndex = 0;
int minIndex = 0;
for (int i = 1; i < size; i++) {
if (arr[i] > maxVal) {
maxVal = arr[i];
maxIndex = i;
}
if (arr[i] < minVal) {
minVal = arr[i];
minIndex = i;
}
}
cout << "最大值为:" << maxVal << ",在第 " << maxIndex+1 << " 个位置" << endl;
cout << "最小值为:" << minVal << ",在第 " << minIndex+1 << " 个位置" << endl;
// 从小到大排序输出
sort(arrCopy, arrCopy+size);
cout << "从小到大排序输出:" << endl;
for (int i = 0; i < size; i++) {
cout << arrCopy[i] << " ";
}
cout << endl;
return 0;
}
```
这段代码首先定义了一个大小为20的浮点型数组`arr`,并从键盘上输入20个浮点数存储到这个数组中。接着使用`ofstream`将这些数写入到名为"data.txt"的文本文件中。然后使用`ifstream`从"data.txt"文件中读取这些数据到另一个数组`arr`中,并输出到屏幕上。
接下来,代码使用一个循环遍历这个数组,求出其中的最大值和最小值,并记录它们在数组中的位置。最后,使用`sort`函数对备份数组`arrCopy`进行排序,并输出排序后的结果到屏幕上。
注意,这段代码没有对输入数据的合法性进行检查,如果用户输入了无效的数据,程序可能会出现错误。在实际使用时,应该对输入数据进行逐一检查,确保它们符合要求。
阅读全文