数组方法随机数显示

本文关键字:显示 随机数 方法 数组 | 更新日期: 2023-09-27 17:57:37

所以我正在尝试制作一个数组,该数组调用一个方法来随机化100个从-100到100的数字并显示平均负数。我一直盯着它看,我找不到错误或解决方案,也许我累了,但如果有人能帮助我,我会非常感激。

    private void button1_Click(object sender, EventArgs e)
    {
        int[] P = new int[100];
        Random rand = new Random();
        float enAvg = AvgNeg(P);
        textBox1.Text = (enAvg).ToString("");
    }
    static float AvgNeg(int[] array)
    {
        float sum = 0;
        int counter = 0;
        for (int i = 0; i < array.Length; i++)
        {
            if (array[i] < 0)
            {
                sum += array[i];
                counter++;
            }
        }
        float avg = sum / counter;
        return avg;
    }

数组方法随机数显示

您可以在三行中完成此操作:

        Random r = new Random();
        int[] num = Enumerable.Range(0, 100).Select(x => r.Next(-100, 101)).ToArray();
        double avg = num.Where(n => n < 0).Average();

问题是因为所有的值都是零(0),所以counter变量是零(零)。你不能除以零。所以avg的浮点值是NaN。

以值1启动counter

 int counter = 1;

或在除法前验证计数器是否为零:

if(counter == 0)
    return 0;
else
 {   
    float avg = sum / counter;
    return avg;
 }