我写了一个代码,在-100,100之间执行100个随机数第一个按钮计算负数的平均值第二个按钮计算奇数正数的平均值。 这里是我被困的地方,我怎么能编写一个代码,当我点击第3个按钮,它从第1个按钮值-5。第4个按钮也有同样的问题但是如果你可以帮我解决这个问题,我可以自己解决最后一个问题。
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int[] P1 = new int[100];
Random rand = new Random();
float enAvg = AvgNeg(P1);
textBox1.Text = (enAvg).ToString("");
}
private void button2_Click(object sender, EventArgs e)
{
int[] P2 = new int[100];
Random rand = new Random();
float enAvg = AvgOddPos(P2);
textBox2.Text = (enAvg).ToString("");
}
private void button3_Click(object sender, EventArgs e)
{
textBox1.Text = (Convert.ToInt32(textBox1.Text) + (-5).ToString());
}
private void button4_Click(object sender, EventArgs e)
{
textBox2.Text = (Convert.ToInt32(textBox1.Text) + (+ 10).ToString());
}
static float AvgNeg(int[] array)
{
Random rand = new Random();
float sum = 0;
int counter = 0;
for (int i = 0; i < array.Length; i++)
{
array[i] = rand.Next(-100, 100);
if (array[i] < 0)
{
sum += array[i];
counter++;
}
}
float avg = sum / counter;
return avg;
}
static float AvgOddPos(int[] array)
{
Random rand = new Random();
float sum = 0;
int counter = 0;
for (int i = 0; i < array.Length; i++)
{
array[i] = rand.Next(-100, 100);
if (array[i] > 0 % 1)
{
sum += array[i];
counter++;
}
}
float avg = sum / counter;
return avg;
}
答案 0 :(得分:2)
不使用TextBoxes。使用它们只是为了显示。计算平均值后,将值分配给变量,然后在TextBox中显示这些变量的值。如果要更改值,请使用计算中的变量,并在适当的情况下更新变量,然后在TextBox中显示结果。
顺便说一句,停止在整个地方创建随机对象。您应该创建一个且只能创建一个Random对象。声明一个Random类型的成员变量,并用一个新实例初始化它,然后在需要随机数的地方使用那个变量。
答案 1 :(得分:1)
声明一个类级变量
public partial class Form1 : Form
{
private float value;
public Form1()
{
InitializeComponent();
value=0;
}
}
然后将button1-5值存储在值变量
中 private void button1_Click(object sender, EventArgs e)
{
int[] P1 = new int[100];
Random rand = new Random();
float enAvg = AvgNeg(P1);
value=enAvg-5;
textBox1.Text = (enAvg).ToString("");
}
private void button3_Click(object sender, EventArgs e)
{
textBox1.Text = (value.ToString());
}
你在这里