gpt4 book ai didi

c - 我++;平均值+=值;平均数/=我;在 C 中没有给出预期的结果

转载 作者:太空宇宙 更新时间:2023-11-04 04:35:13 26 4
gpt4 key购买 nike

我是 C 的新手,我坚持了一些我相信更有经验的用户可以轻松解决的问题。

我正在尝试编写一个代码,该代码可以根据给定的价格计算其值(value)、销售税和平均价格的总和。这是我的问题,平均只适用于第二个价格,在这里它停止改变它的值(value)。

如有任何帮助,我们将不胜感激。

 #include "stdafx.h"

static const double SAZBA = 21;

double plusDPH(double cena);


int _tmain(int argc, _TCHAR* argv[])
{
double bezDPH=1, sDPH, prumer=0;
int i = 0;

while (bezDPH != 0)
{
printf("Zadejte cenu bez DPH [Kc]: ");
scanf("%lf", &bezDPH);
sDPH = plusDPH(bezDPH);
printf("Cena s DPH je: %.2lf Kc.\n", sDPH); // With Sale tax

i++;
prumer += sDPH;
prumer /= i; // Average price in total
printf("Prumerna cena s DPH: %.2lf Kc.\n\n", prumer);
}

return 0;
}

double plusDPH(double cena)
{
cena *= SAZBA / 100 + 1;
return cena;
}

非常感谢!

最佳答案

如果您有一个平均值,然后向其添加一个值并将其除以计数,您将在此过程中丢失信息。您似乎混合使用了两种最常见的方法。

第一种是简单地维护总和,而不是平均值,当然还有计数。这可能是最常见的情况。

然后可以随时计算平均值作为sum/count(对于非零计数)。

第二个是保持平均值,但确保将值应用于重新计算的总和,例如:

sum = average * count
sum = sum + value
count = count + 1
average = sum / count

如第一段所述,您似乎在使用混合方法,错误地将总和除以计数,或者在添加下一个值之前没有将平均值转回总和。

关于c - 我++;平均值+=值;平均数/=我;在 C 中没有给出预期的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31186344/

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