c# - 在显示之前设置数组的最大和 C#

标签 c# arrays sum max

所以我是 C# 新手,我正在编写一个基本程序,它将随机值分配给 6 的数组。

    private void button1_Click(object sender, EventArgs e)
    {
        tbxA.Clear();
        tbxB.Clear();

        int[] number = new int[6];
        Random m = new Random();

        for (int i = 0; i < 6; i++)
        {
            number[i] = m.Next(0, 4);
            tbxA.AppendText("" + Convert.ToString(number[i]) + "\n");
        }

        int sum = number.Sum();
        if (sum > 8)
        {
            tbxB.AppendText(" " + sum);
        }
    }

这将在文本框 A 中显示随机生成的数组数字 1-6,如果它们的总和超过 8,则会在文本框 B 中显示总和。

但是,我在这里想要做的是,数组中的数字仅在其总和大于 8 时才显示在文本框 A 中。如果它们的总和小于 8,则应自动为数组生成新数字,直到它符合要求总和 > 8。

我尝试使用另一个 for 循环,其中包含所有内容以及 ifs,但它会导致程序崩溃。

最佳答案

尝试这个...但请记住,由于您使用的是随机数,因此可能需要一段时间才能满足条件,并且可能看起来像无限循环

private void button1_Click(object sender, EventArgs e)
    {
        tbxA.Clear();
        tbxB.Clear();

        int[] number = new int[6];
        Random m = new Random();
        while(true)
        {
            for (int i = 0; i < 6; i++)
            {
                number[i] = m.Next(0, 4);
                tbxA.AppendText(number[i].ToString() + Environment.NewLine);
                //tbxA.AppendText("" + Convert.ToString(number[i]) + "\n");
            }

            int sum = number.Sum();
            if (sum > 8)
            {
                tbxB.AppendText(" " + sum);
                break;
            }
            else{
                tbxA.Clear();
                tbxB.Clear()
            }
        }
    }

或者如果您想要其他号码但不替换已添加的旧号码..

private void button1_Click(object sender, EventArgs e)
    {   
        tbxA.Clear();
        tbxB.Clear();

        //int[] number = new int[6];
        List<string> number = new List<string>();
        Random m = new Random();
        while(true)
        {
            for (int i = 0; i < 6; i++)
            {
                number.Add(m.Next(0, 4));
            }

            int sum = number.Sum();
            if (sum > 8)
            {
                tbxA.AppendText(string.Join("Environment.NewLine", number.ToArray()))
                tbxB.AppendText(" " + sum);
                break;
            }

        }
    }

关于c# - 在显示之前设置数组的最大和 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22586170/

相关文章:

c# - 来自 PowerBuilder 的 DLL 调用

mysql - 选择有很多表的情况

c - 从文件中分配一个 char* 数组

arrays - 最小可能数组置换问题

mysql - MySQL查询来计算销售/总计

javascript - 如何返回对象数组中重复值的总和并返回非重复值的值?

c# - Async/Await 如何处理 "old"结果?

c# - bobj 未在 VS 2010 中定义

c# - .net core api为每个请求返回客户端index.html文件

c++ - 查找数组中元素的总和和乘积