我需要编写一个程序来读取文件中的数字并计算平均值。读取第一个数字。这是团体规模。读取组大小的后续数字。添加它们并计算平均值。这是我到目前为止所得到的:
int main()
{
int num1, num2, num3, num4, sum, gsize;
FILE *inFile;
char fname[30];
printf("Enter a file name: ");
gets(fname);
inFile = fopen(fname, "r");
if (inFile == NULL)
{
printf("\nFailed to open file.\n");
exit(1);
}
while (fscanf(inFile, "%d %d %d %d %d %d",&gsize, &num1, &num2, &num3, &num4) != EOF)
{
printf("Group Size = %d\n num1 = %-12d num2 = %-18d num3 = %-24d num4 = %-30d %d\n", gsize, num1, num2, num3, num4, sum);
}
fclose(inFile);
}
请帮我弄清楚如何计算和打印它,以便我得到这个输出:
Enter an input file name: numbers.dat
Group Size = 2
i = 1 number = 1 Sum = 1
i = 2 number = 2 Sum = 3
Average = 1.50
Group Size = 3
i = 1 number = 1 Sum = 1
i = 2 number = 2 Sum = 3
i = 3 number = 3 Sum = 6
Average = 2.00
Group Size = 4
i = 1 number = 1 Sum = 1
i = 2 number = 2 Sum = 3
i = 3 number = 3 Sum = 6
i = 4 number = 4 Sum = 10
Average = 2.50
这是我的意见:
2 1 2
3 1 2 3
4 1 2 3 4
答案 0 :(得分:0)
不要为一堆数字做一个大fscanf。
阅读:第一个数字是集团规模。
抓住这个数字,然后尝试循环,抓住每个下一个数字。
例如,您文件中的第一个数字是2.说出来。现在,取下两个数字,然后完成整个
i = 1 number = 1 Sum = 1
的事情。
您的平均值是最后的总和除以您的小组大小。
现在洗涤并重复直至EOF。
HTH