【问题描述】从键盘上输入10个数据(实数), 将数据排序后写到文件a.txt中,同时在屏幕上输出,要求输入输出与写入文件在主函数内完成,排序设计函数完成。该作业对文件可能没有自动测试,同学们可以自己完成后检查当前目录下 a.txt 文件是否存在并且文件中中的数据是否正确 【输入形式】输入10个实数 【输出形式】数据排序后写到文件a.txt中.然后再从文件中读出显示到屏幕上,实数均保留2位小数 【样例输入】 34 5 7 18 9 6 13 8 11 10 【样例输出】 5.00 6.00 7.00 8.00 9.00 10.00 11.00 13.00 18.00 34.00 【样例说明】 在当前目录下存在文件a.txt,其中文件内容为: 5.00 6.00 7.00 8.00 9.00 10.00 11.00 13.00 18.00 34.00
时间: 2024-02-19 19:57:46 浏览: 67
S7-200SMART_数据排序(整数+双整数+实数+无符号数)库文件及使用说明.rar
5星 · 资源好评率100%
以下是C++代码实现:
```cpp
#include <iostream>
#include <fstream>
#include <iomanip>
#include <algorithm>
using namespace std;
void sortAndWriteToFile(double arr[], int n, string filename) {
sort(arr, arr + n);
ofstream fout(filename);
fout << fixed << setprecision(2);
for (int i = 0; i < n; i++) {
fout << arr[i] << " ";
cout << arr[i] << " ";
}
fout.close();
}
void readAndPrintFromFile(string filename) {
ifstream fin(filename);
double x;
fin >> fixed >> setprecision(2);
while (fin >> x) {
cout << x << " ";
}
fin.close();
}
int main() {
double arr[10];
cout << "请输入10个实数:";
for (int i = 0; i < 10; i++) {
cin >> arr[i];
}
sortAndWriteToFile(arr, 10, "a.txt");
cout << endl << "排序后的结果为:";
readAndPrintFromFile("a.txt");
cout << endl;
return 0;
}
```
首先在 `sortAndWriteToFile` 函数中,使用 `std::sort` 函数对输入的数组进行排序,并将结果写入文件中。在写入文件时,使用流输出格式控制符 `fixed` 和 `setprecision` 保留小数点后两位。同时,将排序后的结果也输出到屏幕上。
在 `readAndPrintFromFile` 函数中,先使用 `ifstream` 打开文件,再使用流输入格式控制符 `fixed` 和 `setprecision` 保留小数点后两位。然后循环读取文件中的每个实数,同时将其输出到屏幕上。
在 `main` 函数中,先输入 10 个实数,然后调用 `sortAndWriteToFile` 函数将结果写入文件,并调用 `readAndPrintFromFile` 函数将结果从文件中读取并输出到屏幕上。
阅读全文