我是C的新手,我坚持认为一些有经验的用户可以轻松解决的问题。
我正在尝试编写一个基于给定价格的代码,可以使用销售税和平均总价来计算它的价值。这是我的平均作品的问题,仅针对第二价格而且这里不再改变它的价值。
任何帮助都会受到赞赏。
#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;
}
非常感谢!
答案 0 :(得分:0)
如果您有平均值,然后为其添加一个值并将其除以计数,您将在此过程中丢失信息。你似乎正在使用两种最常见的混合方式。
首先是简单地保持总和而不是平均值,以及当然的计数。这可能是最常见的情况。
然后可以随时计算平均值sum / count
(非零计数)。
第二个是维持平均值但确保将值应用于重新计算的总和,例如:
sum = average * count
sum = sum + value
count = count + 1
average = sum / count
如第一段所述,您似乎正在使用混合,错误地将总和除以计数,或者在添加下一个值之前不将平均值转换为总和。