gpt4 book ai didi

c - 对文本文件中的整数进行计数和求和时遇到问题

转载 作者:行者123 更新时间:2023-11-30 19:32:19 25 4
gpt4 key购买 nike

抱歉,我是个新手。

对于这个问题我使用了C语言,以及库stdlio.h和stdlib.h。

<小时/>

问题

所以有一个问题要求我:

  1. 以读取模式打开名为“numbers.txt”的文本文件。这个文本文件其中有 6 个整数。
  2. 使用循环从该文本文件中读取 6 个整数。
  3. 计算并显示这 6 个整数的总和和平均值。

文本文件“numbers.txt”包含整数:5、10、15、20、25。

这是我的代码:

    FILE *n;
n = fopen("numbers.txt", "r");
int a, num, sum = 0;
float avg;

for (a = 0; a < 6; a++) {
fscanf(n, "%d", &num);
sum = sum + num;
}
avg = sum / (a - 1);
printf("Sum = %d\nAverage = %.2f\n\n", sum, avg);
fclose(n);

问题的另一个变体是我需要使用 while 循环来读取文本文件中的整数。

这是我的代码:

    FILE *n;
n = fopen("numbers.txt", "r");
int a = 0, num, sum = 0;
float avg;

while (fscanf(n, "%d", &num) != EOF) {
fscanf(n, "%d", &num);
sum = sum + num;
a++;
}

avg = sum / a;
printf("Sum = %d\nAverage = %.2f\n\n", sum, avg);
fclose(n);
<小时/>

问题

当我运行上述每个程序时,我期望这样的输出:

Sum = 75
Average = 15.00

但是我得到了这个(对于第一个代码):

Sum = 100
Average 20.00

这个(对于第二个代码):

Sum = 55
Average = 18.00

我如何才能从这两个程序获得正确的输出?

我再次为这个问题的基本性表示歉意。尽管如此,任何帮助将不胜感激。

最佳答案

在第一个中,您尝试读取一对多的数字,但由于只有 5 个数字,最后一个数字被加到总和中两次,因此您最终添加了一个额外的 25 总和为 100。

在第二个代码中,读取最后一个数字后,已到达文件末尾,因此您的代码没有机会添加最后读取的数字,因此您错过了添加 25 到你的总和。

<小时/>

您的第一个代码更接近了,只需将 for 循环更改为仅迭代 5 次

关于c - 对文本文件中的整数进行计数和求和时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47234121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com