以随机间隔使用随机数填充堆栈(自己的堆栈类)的程序

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> 方面的帮助,您也不需要提供您编写的所有代码。

以上是关于以随机间隔使用随机数填充堆栈(自己的堆栈类)的程序的主要内容,如果未能解决你的问题,请参考以下文章

数组变量周围的堆栈损坏

生成具有恒定堆栈空间的随机向量

R中栅格堆栈的无监督随机森林分类

保护程序的堆栈内存

QProgressDialog::setValue 产生随机堆栈溢出

使用快速英特尔随机生成器(SSE2)失败,堆栈周围...已损坏