不使用inbuild函数或C#中的方法求和平均最小值Max

时间:2016-05-09 09:31:45

标签: c# .net windows winforms

我写了一个计算Sum,Average,Min和amp;的程序。 Max没有inbulit函数或方法。我发现了许多技术并锁定在下面。 但问题是,在做正常方式的同时。结果来了。 转换到Windows窗体时,我无法获得输出。它总是会引发错误。

sum : 45
avg : 15
min : 8
max : 10

输出应该是,

{{1}}

4 个答案:

答案 0 :(得分:1)

我认为,您的代码中存在问题:

textBox5.Text = numbers[-1].ToString();

你的数组中没有-1索引的条目。

如果要在textBox5中显示最大值,则需要执行以下操作:

textBox5.Text = numbers[n-1].ToString();

如果你想在textBox5中显示最小值,你需要这样做:

textBox5.Text = numbers[0].ToString();

谢谢!

答案 1 :(得分:1)

将数组i设置为包含通过表单上的用户输入传入的所有值。然后,您可以使用此代码获取所需的所有值。然后将变量iMax,iMin,iSum和flAvg写入输出标签。在这个例子中,我只是将自己的数据用于说明代码。

    int[] i = { 1, 2, 3, 4, 5 };
    int iSum = 0;
    float flAvg = 0.0f;
    int iMax = 0;
    int iMin = Int32.MaxValue;
    foreach (int iElement in i)
    {
        iSum = iSum + iElement;
        flAvg = flAvg + iElement;
        if (iElement > iMax)
        {
            iMax = iElement;
        }
        if (iElement < iMin)
        {
            iMin = iElement;
        }
    }
        flAvg = flAvg / i.Length;
//carry on to do stuff with the data down here.

答案 2 :(得分:0)

更改此行的代码:

 textBox5.Text = numbers[n-1].ToString();

因为-1不是这里的索引,你在这里选择最大值,它将是n-1索引。

以及代码行:

  numbers[i] = int.Parse(textBox1.Text);

使用它:

numbers[i] = Convert.ToInt32(textBox1.Text);

答案 3 :(得分:0)

使用linq,非常干净,工作正常:

{{1}}