【问题标题】:C# Looping int to array then counting [closed]C#循环int到数组然后计数[关闭]
【发布时间】:2016-02-09 18:12:50
【问题描述】:

C# 新手,不知道从哪里开始将读取的整数放入数组,然后继续计算数组中的数字。任何帮助将不胜感激。

我遵循的格式:

反复要求用户输入一个介于 1 到 10 之间的整数,或者输入 'q' 退出。使用数组来跟踪每个数字的次数 被输入。如果用户输入小于 0 或大于 10 的数字, 显示错误消息。

用户输入完数字后,显示有多少个 每个数字输入的次数。不要显示数字的计数 没有输入。

例子:

Enter an integer or ‘q’ to quit: 3
Enter an integer or ‘q’ to quit: 7
Enter an integer or ‘q’ to quit: 4
Enter an integer or ‘q’ to quit: 12
Your number must be between 1 and 10.
Enter an integer or ‘q’ to quit: 7
Enter an integer or ‘q’ to quit: 7
Enter an integer or ‘q’ to quit: 4
Enter an integer or ‘q’ to quit: q
Number Count
 3 1
 7 3
 4 2

到目前为止我的代码:

int[] count = new int[10];
bool isRunning = true;

while (isRunning)
{
   Console.Write("Enter an integer or ‘q’ to quit: ");
   string input = Console.ReadLine();

   if (input == "q")
        isRunning = false;
   else if 
        //cant figure out the way to int32.TryParse here.
   else
        Console.WriteLine("Your number must be between 1 and 10.\n");
}

for (int i = 0; i < 10; i++)
{
   //Prints out number and count
}

【问题讨论】:

  • 到底是什么问题?您有数字,并且每个数字都有一个计数器(在数字数组中)...为输入的每个数字增加正确的计数器,然后输出所有非零的计数器
  • 您的要求并不要求您跟踪每个条目 - 只是每个数字输入了多少次。使用由 10 个“桶”组成的数组并增加相应桶的值。
  • 只需创建一个 List 并在 List 上使用.Sum() 函数.. 一行代码非常简单.. 在List&lt;T&gt;.Sum 上进行谷歌搜索
  • 我也会在解析输入之前检查Q,并使用TryParse来处理输入无效整数的情况。
  • 当前代码将在任何不解析为 intinput 上失败 - 所以 q 命令不起作用 - 考虑使用 int.TryParse 代替,或者至少处理非数字输入首先。

标签: c# arrays loops parsing int


【解决方案1】:

您的数组应该存储数字出现的时间,而不是数字本身。

int[10] Num;
while(true)
{
    Console.WriteLine("Enter an integer or ‘q’ to quit: ");
    string in = Console.ReadLine();
    if(in=="q")
    {
        break;
    }
    else if(int.Parse(in)>-1&&int.Parse(in)<11)
    {
        Num[int.parse(in)]++;
    }
    for(int i=0; i<10; i++)
    {
        if(Num[i]>0)
            Console.WriteLine(i.ToString() + " " Num[i].ToString());
    }
}

【讨论】:

  • 有效数字范围从 1 到 10,因此您缺少一个 -1 或两个...
  • 您在正确的路径上,但是,解析 3 次相同的数据?如果我输入 Z 而不是 q 会怎样。 Int.Parse 会抛出
  • 在任务中,用户被要求输入从 1 到 10 的数字,而 char 'q' 没有别的。没有人要求检查例外情况。但是经过 3 次解析,我同意了。只是懒得创建新变量)。
  • @G0867532 很好,但高质量的答案让您时刻关注潜伏在 OP 代码中的问题。
  • 如果您打算回答“写我的家庭作业”问题,请确保发布编译好的代码,并附上很好的解释。还要确保回答问题中的所有要点...
猜你喜欢
  • 2018-03-07
  • 2013-12-17
  • 1970-01-01
  • 2021-09-16
  • 2019-05-13
  • 2014-06-12
  • 2016-06-22
  • 2020-10-06
  • 1970-01-01
相关资源
最近更新 更多