随机数组值的总和

时间:2017-11-22 23:49:50

标签: c# arrays random

所以我们在上一章创建了一个应用程序,它生成并显示了一组0-99之间的随机数。对于我们的“新”作业,我们被要求添加标签和文本框,以显示每次生成新集时显示的随机值的总和。我在教科书中找到了描述代码如何写入总值的部分,而不是随机化的部分。我一直绞尽脑汁试图在线搜索解决方案但是编程语言不同或者总计的值不是随机的。有人可以告诉我如何解决这个问题吗?

    private void generateButton_Click(object sender, EventArgs e)
    {
        // Create an array to hold the numbers.
        const int SIZE = 5;
        int[] lotteryNumbers = new int[SIZE];

        // Create a Random object.
        Random rand = new Random();

        // Fill the array with random numbers, in the range // of 0 through 99.
        for (int index = 0; index < lotteryNumbers.Length; index++)
        {
            lotteryNumbers[index] = rand.Next(100);
        }

        // Display the array elements in the Label controls.
        firstLabel.Text = lotteryNumbers[0].ToString();
        secondLabel.Text = lotteryNumbers[1].ToString();
        thirdLabel.Text = lotteryNumbers[2].ToString();
        fourthLabel.Text = lotteryNumbers[3].ToString();
        fifthLabel.Text = lotteryNumbers[4].ToString();
    }

    private void exitButton_Click(object sender, EventArgs e)
    {
        // Close the form.
        this.Close();
    }

2 个答案:

答案 0 :(得分:1)

如果您只需要获取循环中生成的值的总和,则可以使用现有循环。考虑以下逻辑结构:

// declare a value
// loop
    // add to the value
// end loop
// use the value

将此结构应用于您的代码可能如下所示:

int sumTotal = 0;
for (int index = 0; index < lotteryNumbers.Length; index++)
{
    lotteryNumbers[index] = rand.Next(100);
    sumTotal += lotteryNumbers[index];
}
// any time after this, you can display "sumTotal"

相反,使用.NET框架本身的一些方便的结构/工具可以实现许多这样的简单操作。例如,IEnumerable<T>等集合上有are a variety of useful extension methods,它们也支持简单数组。 可以通过单个方法调用获取集合的总和:

int sumTotal = lotteryNumbers.Sum();

(你当然必须在你的循环之后执行此操作,否则将无法总结任何内容。)

答案 1 :(得分:0)

所以你想要一个可以保存结果的变量。

lotteryNumbers保存您的随机数。因此,您必须遍历数字并将单个值添加到结果变量中。

某些伪代码看起来像这样

declare resultVariable

loop all numbers in lotteryNumbers
   add current number in lotteryNumbers to resultVariable