-2

ユーザーが挿入した数値の平均、中間、および範囲を提供するアプリケーションを作成しています。
しかし、数字を足してから2で割ることはできないようです。
これが私が試みたものです:

    public static String Find_Mean()
    {
        int Number = 0;
        for (int size = 0; size < list.Count; size++)
        {
            Number = Convert.ToInt16(list[size].ToString());
            Number += Number;
        }
        int Final_Number = Number / 2;
        return Convert.ToString(Final_Number);
    }

私がやりたいことは、arraylist からすべての数字を足し合わせてから、それらを 2 で割ることです。

4

6 に答える 6

3

Linq を使用してみてください:

 int[] x;
 x.Average();
 x.Max();
 x.Min();
于 2013-02-04T07:52:09.173 に答える
3
Number = Convert.ToInt32(list[size].ToString());

ここでは、反復ごとに数値の値を上書きしています。

于 2013-02-04T07:53:27.577 に答える
1

ここで Number の値を再割り当てしています。

for (int size = 0; size < list.Count; size++)
{
    Number = Convert.ToInt16(list[size].ToString());
    Number += Number;
}     

これを試して:

for (int size = 0; size < list.Count; size++)
{
    Number += Convert.ToInt16(list[size].ToString());
}     
于 2013-02-04T07:57:39.897 に答える
1

ループ内の配列リスト要素に を設定しNumberて合計を上書きするたびに、合計が得られないのはそのためです。合計を維持するには、別の変数を使用する必要があります。何かのようなもの:

int Number = 0;
int Total = 0;
for (int size = 0; size < list.Count; size++)
{
    Number = Convert.ToInt16(list[size].ToString());
    Total += Number;
}
int Final_Number = Total / 2;

.Net 2.0 以降を使用している場合は、一般的なリストを使用できる方がよいでしょうList<int>

ループ内の数値への変換を次のように変更することもできます。

Number = Convert.ToInt32(list[0]);

Convert.ToInt32オブジェクト型にもオーバーロードがあるため、数値が typeのint場合、それはInt32notInt16です。

于 2013-02-04T07:52:43.620 に答える
0
public static String Find_Mean()
{
    List<int> integerList = list.Select(q => int.Parse(q)).ToList();
    var result = integerList.Sum() / 2;
    return result.ToString();
}
于 2013-02-04T08:12:29.023 に答える