【问题标题】:How to create a jagged array using user input, then display users input and sum C#如何使用用户输入创建锯齿状数组,然后显示用户输入并求和 C#
【发布时间】:2014-06-11 18:04:21
【问题描述】:

Ok 我让数组有一个固定的数字来显示和求和,但我想做的是让用户填写所有三个数组,然后尽可能在一个标签中显示它们的总和。这就是我所拥有的。我已经在 Google 上查找了这方面的信息,但结果并不适用于 C#。我问这个问题的原因是为了让自己变得更好,我已经完成了我应该做的事情。我想知道用户如何创建自己的数组,然后将其与他们的总和一起显示。请帮助,我很感激任何帮助。请对我放轻松。我还是个初学者。如果你不明白我想问什么,请允许我详细说明。

图像是我希望用户能够执行哪些操作以填充数组的示例。

这是代码。我试图以一种用户可以构建数组而不是已经填充数组的方式将它们组合起来。

private void Submit_Click(object sender, EventArgs e)
{
 Nmbrs[x] = Convert.ToInt32(UsrInputBox.Text);
 UsrInputBox.ResetText();
 ++x;
 if (x == Nmbrs.Length)
 GetSmlLrg();
}

//Method
void GetSmlLrg()
{
 int Sml = Nmbrs[0];
 int Lrg = Nmbrs[0];
 for (x = 1; x < Nmbrs.Length; ++x)
 {
  if (Nmbrs[x] < Sml)
  Sml = Nmbrs[x];
  if (Nmbrs[x] > Lrg)
  Lrg = Nmbrs[x];
 }

我的代码试图结合让用户填充数组的能力。

int[] Nmbr1 = { 9, 5, 3, 9, 8 };
int[] Nmbr2 = { 24, 48, 90, 36, 4, 9, 2, 7 };
int[] Nmbr3 = { 84,97,63,48,12,789,2,5,8,2,54,8,6 };

//Main Button
private void Submit_Click(object sender, EventArgs e)
{

 GetSum(Nmbr1);
 GetSum(Nmbr2);
 GetSum(Nmbr3);
}

//Method
public void GetSum(int[]Array)
{
 int Total = 0;
 for (int x = 0; x < Array.Length; ++x)
 {
  if (x == 0)
  Output.Text += "\n";
  Output.Text += " " + Array[x];
  Total += Array[x];
 }
 Output.Text += "\nThe total is - " + Total + "\n"+"----------------------------------
 ------";

【问题讨论】:

  • 你只是问如何写输入循环?还是您想要用户定义的数组(实际上应该是 IMO 列表)。
  • @BradleyDotNET 我相信是的。我希望能够让用户在 Uinputbox.text 中一次输入一个数字。我知道我需要设置数组数量,并且我需要它是具有至少三个不同数组的锯齿状数量。
  • 嗨!我不确定您的问题到底是什么……是关于如何将用户的输入输入数组吗?如果是这样,您的表单可能有 3 个文本框,然后在 Submit_Click 中您将阅读它们并将内容放入数组中(也许假设它们输入了逗号分隔的值,例如“1,2,3,4,5”,您会用逗号分割字符串,在每个字符串上使用 int.Parse() 并填充整数数组。
  • @BradDivine 我试图让用户在文本框中输入数字,然后点击提交,这将重复每个数组的次数。然后使用 output.text 标签显示所有三个数组和总和。
  • 好的。直接使用数组有点痛苦,因为它们是静态的;如果可以使用其他数据结构首先捕获用户的输入(例如,List 或 List),那么您可以在用户完成输入数字后创建并填充您的 int 数组。跨度>

标签: c# arrays multidimensional-array user-input jagged-arrays


【解决方案1】:

如果我理解你想要做什么,你需要稍微修改一下你的 UI。

您需要您的文本框、提交按钮和一个新的“计算”按钮。计算按钮表示输入完成,然后显示结果。

代码如下所示:

List<int> numbers = new List<int>();
private void Submit_Click(...)
{
   numbers.Add(int.Parse(UsrInputBox.Text));
}

private void Calculate_Click(...)
{
   int smallest = numbers.Min();
   int largest = numbers.Max();

   //Display code
}

请注意,我使用List&lt;T&gt;,因为在编译时不知道大小时,您不会使用数组。我还利用 LINQ MinMax 函数来简化搜索。您可能还没有了解它们,但 LINQ 扩展是 C# 中非常强大的工具。

如果这有帮助或者您有任何疑问,请告诉我。此示例没有您所做的 3 个数组,但您的 UI 也没有显示它们。如果您需要这种行为,您只需在某种循环中运行上述代码。如果您提供更多详细信息,我可以尝试为您充实一下。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    • 2020-10-21
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    • 2014-11-06
    • 1970-01-01
    相关资源
    最近更新 更多