加权平均成绩计算器


如果我三门科目的成绩分别为 67,54,98,权重分别为 32,12,45,我的加权平均成绩是多少。 我知道公式 =(67*32)+(54*12)+(98*45)/(32+12+45) 但我不知道如果我使用 for 循环它是如何工作的。

解决方案1

解决方案A,

您可以使用两个数组。 一为数字,一为相应的重量。

C#
public double[] _number = new double[] {67,54,98};
public double[] _weights = new double[] {32,12,45};

then: 

double _wavg = 0;

for(int i = 0; i < _number.Count(); i++)
{
   _wavg += ((_number[i] * _weight[i]) / (_weights.Sum())

}

溶液B,

您可以使用预定义的类来存储数字最终权重

C#
public class WeightedNumber
{
   public double Number {get; set; }
   public double Weight{get; set; }

}

List<wightednumber> _numbers;</wightednumber>

其余部分看起来或多或少相同

解决方案2

您可以使用分数即 {67, 54, 98} 来放置一个 for 循环,如下所示

C#
var _average = 0;
for(int i = 0; i < scores.Count(); i++)
{
   _average += ((scores[i] * weights[i]))

}
_average = (_average/ (weights.Sum()) * 100;

阅读以下文章,了解该公式的实际工作原理以及计算该公式的不同方法:
文章, 指定公式

コメント

タイトルとURLをコピーしました