数组方法随机数显示
本文关键字:显示 随机数 方法 数组 | 更新日期: 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;
}