请编写函数,从一个文件中读取实数求和,并将结果写入另一个文件。
函数原型
void BatchAdd(FILE *in, FILE *out);
说明:参数 in 和 out 为指示两个文件的指针。函数从 in 所指文件中的读出数据,将结果写入 out 所指的文件中。
要求:in 所指文件中有很多行,每行包含两个实数,以空格间隔。函数求出这两个实数的和,写入 out 文件中,每行一个结果。
要求:输出结果保留 2 位小数。
裁判程序
#include <stdio.h>
#include <stdlib.h>
void BatchAdd(FILE *in, FILE *out);
int main()
{
FILE *in, *out;
in = fopen("Addition.txt", "r");
out = fopen("Sum.txt", "w");
if (in && out)
{
BatchAdd(in, out);
}
else
{
puts("文件无法打开!");
}
if (in)
{
fclose(in);
}
if (out)
{
fclose(out);
puts("文件保存成功!");
}
return 0;
}
/* 你提交的代码将被嵌在这里 */
在程序所在文件夹中创建文本文件“Addition.txt”,复制下面的内容:
Addition.txt
25.9 8.7
120.9 87.518
12.8 65.2
输入样例
(无)
输出样例
文件保存成功!
程序运行结束后,打开“Sum.txt”文件,查看文件内容。
34.60
208.42
78.00
void BatchAdd(FILE *in, FILE *out)
{
double x,y;
int k = 0;
double a[1000];
while (~fscanf(in," %lg%lg",&x,&y))
{
a[k] = x + y;
fprintf(out,"%.2f\n",a[k]);
k++;
}
}