用c语言编写从键盘上输入10个数据(实数), 将数据排序后写到文件a.txt中,同时在屏幕上输出,要求输入输出与写入文件在主函数内完成,排序设计函数完成,数据排序后写到文件a.txt中.然后再从文件中读出显示到屏幕上,实数均保留2位小数
时间: 2024-02-19 20:58:49 浏览: 80
好的,我来一步一步地为你解答。
首先,我们需要定义一个排序函数来对输入的数据进行排序。这里我使用的是冒泡排序法:
```c
void sort(float arr[], int n) {
int i, j;
float temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
```
然后,在主函数中,我们需要定义一个数组来存储输入的数据,然后调用排序函数进行排序。排序完成后,我们需要将排序后的数据输出到屏幕上,并将其写入到文件`a.txt`中。代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
void sort(float arr[], int n) {
int i, j;
float temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
float arr[10];
int i;
FILE *fp;
fp = fopen("a.txt", "w");
if (fp == NULL) {
printf("File open error!\n");
exit(1);
}
printf("Please enter 10 float numbers:\n");
for (i = 0; i < 10; i++) {
scanf("%f", &arr[i]);
}
sort(arr, 10);
printf("The sorted array is:\n");
for (i = 0; i < 10; i++) {
printf("%.2f ", arr[i]);
fprintf(fp, "%.2f ", arr[i]);
}
fclose(fp);
printf("\n");
fp = fopen("a.txt", "r");
if (fp == NULL) {
printf("File open error!\n");
exit(1);
}
printf("The numbers from file are:\n");
for (i = 0; i < 10; i++) {
fscanf(fp, "%f", &arr[i]);
printf("%.2f ", arr[i]);
}
fclose(fp);
return 0;
}
```
最后,编译运行代码,输入10个实数,然后程序会将排序后的结果输出到屏幕上,并将其写入到文件`a.txt`中。接着,程序从文件中读出数据并显示到屏幕上,所有实数均保留2位小数。
阅读全文