2

次の2つの方法があります。

public int Average (params int[] array)
{
    if (array.Length > 0)
    { 
        double avg = Sum(ints) / arr.Length;        
        return (int)avg;             
    }        
    return 0;
} 

public int Sum(params int[] array2)
{
    int total = 0;
    for (int n = 0; n < array2.Length; n++)
    {
        total += arr[n];
    }
    return total;
}

しかし、テスト目的で、配列にint.MaxValue / 2andを追加してみました。int.MaxValue / 2 + 4.しかし、2 つの値の合計が 未満になるのに、単体テストが失敗するのはなぜint.MaxValueでしょうか?

4

1 に答える 1

5

配列内の 2 つの値 [] :- int.MaxValue / 2 & int.MaxValue / 2 + 4.. しかし、単体テストを実行すると失敗しますが、2 つの値の合計は int.maxvalues 未満になりますか?

いいえ、合計は を超えint.MaxValueます:

(int.MaxValue / 2) + (int.MaxValue / 2 + 4) == int.MaxValue + 4 //...

int の最大値を超えました。

簡単な計算: (x/2)+ (x/2 +4) == x+4

于 2012-10-21T10:36:03.870 に答える