[ad_1]
如果我三门科目的成绩分别为 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;
[ad_2]
コメント