【发布时间】:2021-03-16 16:50:10
【问题描述】:
#include <stdio.h>
double calculate_average (int number)
{
static int numberInput = 0; //counter
static int sum = 0;
sum = sum + numberInput;
numberInput++;
return sum / numberInput;
// calculate and return average so far.
}
int main(void)
{
double average;
while (1)
{
int number;
scanf("%d", &number);
if (number == 0)
break; //stops if number == 0
else
average = calculate_average(number);
}
printf("%.1f\n", average);
return 0;
}
正如我个人所说,该函数正在尝试计算平均值。但是为什么main函数在calculate_average函数中没有使用number呢?
【问题讨论】:
-
您是如何确认这一点的?
-
您知道
sum / numberInput是整数除法,并且会向0 舍入吗?函数试图返回double的事实为时已晚。 -
“电话号码”是什么意思?您认为缺少什么?目前还不清楚。你给这个程序什么输入?它产生什么输出?为什么这是错的? Edit 包括样本输入、所需输出、当前输出以及差异/问题的描述。
标签: c