c语言编写【问题描述】从键盘上输入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-01 18:15:17 浏览: 52
```c
#include <stdio.h>
#include <stdlib.h>
void sort(float *arr, int size) {
int i, j;
float temp;
for (i = 0; i < size - 1; i++) {
for (j = i + 1; j < size; j++) {
if (*(arr + i) > *(arr + j)) {
temp = *(arr + i);
*(arr + i) = *(arr + j);
*(arr + j) = temp;
}
}
}
}
int main() {
float arr[10];
int i;
printf("请输入10个实数:\n");
for (i = 0; i < 10; i++) {
scanf("%f", &arr[i]);
}
sort(arr, 10);
FILE *fp;
fp = fopen("a.txt", "w");
if (fp == NULL) {
printf("无法创建文件\n");
exit(1);
}
printf("排序后的结果:\n");
for (i = 0; i < 10; i++) {
printf("%.2f ", arr[i]);
fprintf(fp, "%.2f ", arr[i]);
}
printf("\n");
fclose(fp);
fp = fopen("a.txt", "r");
if (fp == NULL) {
printf("无法打开文件\n");
exit(1);
}
printf("从文件中读出的结果:\n");
for (i = 0; i < 10; i++) {
float num;
fscanf(fp, "%f", &num);
printf("%.2f ", num);
}
printf("\n");
fclose(fp);
return 0;
}
```
运行结果:
```
请输入10个实数:
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
从文件中读出的结果:
5.00 6.00 7.00 8.00 9.00 10.00 11.00 13.00 18.00 34.00
```
阅读全文