以随机间隔使用随机数填充堆栈(自己的堆栈类)的程序
Posted
技术标签:
【中文标题】以随机间隔使用随机数填充堆栈(自己的堆栈类)的程序【英文标题】:a program to populate a stack ( own stack class) with random numbers at random interval 【发布时间】:2019-02-12 15:26:19 【问题描述】:。插入的项目应添加到名为 sum 的变量中。
线程密切关注堆栈,当一个项目可用时修改总数
我的堆栈已创建
public int capacity get; set;
int[] stack;
int top = 0;
public int push(int element)
if (top == capacity - 1)
return 1;
else
top = top + 1;
stack[top] = element;
return 0;
首先在设定的时间间隔内对两件事感到困惑,我知道我在计时器上错了,但在哪里???
private void button1_Click(object sender, EventArgs e)
System.Timers.Timer t = new System.Timers.Timer(rand.Next(1000, 5000));
t.Elapsed += (s,r) => insertIntoStack(); ;
t.Enabled = true;
t.Start();
public void insertIntoStack()
textBox1.Text = stack1.getsum().ToString();
int number = stack1.generateRandomNumber();
textBox2.Text = number.ToString();
stack1.push(number);
textBox3.Text = stack1.getsum().ToString();
public int generateRandomNumber()
int number = 0;
System.Random rand = new Random();
number = rand.Next(1, 99);
return number;
public void doSum()
sum += stack[top];
第二个线程关注堆栈,当一个项目可用时修改总数任何人都可以帮助,我对 c# 完全陌生
【问题讨论】:
每次单击按钮时,您都会创建一个带有新的已用事件处理程序的新计时器。这肯定不是你想要的吗? 我想要的是单击按钮,计时器将创建新的随机时间,在此时间之后生成添加到总和的随机数,然后再次继续创建随机时间并生成随机数等等直到我添加一个条件 【参考方案1】:这可能是您的 insertIntoStack()
函数中的某些问题 - 您没有提供调试它所需的所有代码(我不知道 generateRandomNumber()
或 getSum()
是如何工作的)。
如果您想动态推送,您应该考虑使用List<T>
或Stack
,而不是int[]
。
【讨论】:
必须使用自己创建的栈,所以使用int[] @Ajay,您应该使用 .NET 和 C# 为您提供的工具。如果您需要List<T>
方面的帮助,您也不需要提供您编写的所有代码。以上是关于以随机间隔使用随机数填充堆栈(自己的堆栈类)的程序的主要内容,如果未能解决你的问题,请参考以下文章