//这是一个FCFS磁盘寻道算法的部分
private void btstart_Click(object sender, EventArgs e)
{
n = int.Parse(textBox1.Text.Trim());//生成n个随机数,磁道总数
for (int i = 0; i < n; i++)//*******2
{
num[i] = (int)(rnd.Next(0, 100));
}
for (int i = 0; i < n; i++)
{
richTextBox1.AppendText(num[i] + ",");//显示到第一个rtb里
}
}
private void btGO_Click(object sender, EventArgs e)
{
if (radioButton1.Checked)
{
int sum=0,i,j,first=0,now;
float averag;
now =int.Parse(textBox2.Text.Trim());//当前磁道
for (int k = 0; k < n;k++ )// *****************1
{
richTextBox2.AppendText(num[k] + ",");//显示到第二个rtb里
}
...
}
}
============================================
n和数组num都是全局的 random也是在外new的 问题是:显示到第二个rtb里的数字不是第一次随机生成存在数组中的,而且执行到1那个for循环时,程序又跳到2那个for循环去执行random了,为什么呢?
要不然不清楚你说的第二个问题到底是神马回事
实验了一下,把代码贴出来,你说的第一个问题貌似不存在,第二个rtb里的数字也是第一次随机生成保存在数组里的。 int n;
int[] num;
Random rnd = new Random(); public Form1()
{
InitializeComponent();
} private void btstart_Click(object sender, EventArgs e)
{
n = int.Parse(textBox1.Text.Trim());//生成n个随机数,磁道总数
num = new int[n];
for (int i = 0; i < n; i++)//*******2
{
num[i] = (int)(rnd.Next(0, 100));
}
for (int i = 0; i < n; i++)
{
richTextBox1.AppendText(num[i] + ",");//显示到第一个rtb里
}
} private void btGo_Click(object sender, EventArgs e)
{
if (radioButton1.Checked)
{
int now = int.Parse(textBox2.Text.Trim());//当前磁道
for (int k = 0; k < n; k++)// *****************1
{
richTextBox2.AppendText(num[k] + ",");//显示到第二个rtb里
}
}
}
{
num[i] = (int)(rnd.Next(0, 100)); richTextBox1.AppendText(num[i] + ",");//显示到第一个rtb里
}
问题还是自己解决了
属于低级错误 操作控件的时候 多了句这个
// this.richTextBox2.TextChanged += new System.EventHandler(this.btstart_Click);
导致的跳转
谢谢各位的热心帮助~