问题描述】从键盘上输入10个数据(实数), 将数据排序后写到文件a.txt中,同时在屏幕上输出,要求输入输出与写入文件在主函数内完成,排序设计函数完成。该作业对文件可能没有自动测试,同学们可以自己完成后检查当前目录下 a.txt 文件是否存在并且文件中中的数据是否正确 【输入形式】输入10个实数 【输出形式】数据排序后写到文件a.txt中.然后再从文件中读出显示到屏幕上,实数均保留2位小数。C语言
时间: 2024-02-18 07:06:16 浏览: 47
S7-200SMART_数据排序(整数+双整数+实数+无符号数)库文件及使用说明.rar
5星 · 资源好评率100%
以下是对应的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define N 10
void sort(float arr[], int n) {
int i, j;
float temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
int main() {
float arr[N];
int i;
FILE *fp;
// 从键盘输入10个实数
printf("请输入10个实数:\n");
for (i = 0; i < N; i++) {
scanf("%f", &arr[i]);
}
// 调用sort函数排序
sort(arr, N);
// 将数据写入文件a.txt中
fp = fopen("a.txt", "w");
for (i = 0; i < N; i++) {
fprintf(fp, "%.2f ", arr[i]);
}
fclose(fp);
// 从文件中读取数据并输出到屏幕上
fp = fopen("a.txt", "r");
printf("排序后的结果为:\n");
for (i = 0; i < N; i++) {
fscanf(fp, "%f", &arr[i]);
printf("%.2f ", arr[i]);
}
fclose(fp);
return 0;
}
```
程序首先从键盘上输入10个实数,然后调用sort函数进行排序,将排序后的数据写入到文件a.txt中,最后从文件中读取数据并输出到屏幕上。sort函数使用简单的选择排序算法,时间复杂度为O(n^2)。
阅读全文