随机统计应用程序?(控制台C#)

尼禄·赛因

使用C#控制台创建一个“随机统计”应用程序,要求用户输入数字。然后,它应该生成0到9之间的许多随机数,然后显示每个数字的出现次数。应用程序输出应输出:

Enter a number: 500

Number  Occurences
0       58
1       56
2       47
3       49
4       49
5       55
6       49
7       59 
8       36 
9       42

1. Assign New Set of Integers  

2. Exit

到目前为止,这是我得到的:

string input;
int userNumber;

Console.Write("Enter a number: ");
input = Console.ReadLine();
userNumber = int.Parse(input);

Console.WriteLine("\n" + "Number Occurrences");
int[] number = new int[10]; 
int[] numberTwo = new int[userNumber]; 
Random randNum = new Random();

for (int counter = 0; counter < userNumber; counter++)
 {
numberTwo[counter] = randNum.Next(10);
if (numberTwo[counter] == 0)
{
number[0]++;
}
if (numberTwo[counter] == 1) 
{
number[1]++;
}
if (numberTwo[counter] == 2)
{
number[2]++;
}
if (numberTwo[counter] == 3) 
{
number[3]++;
}
if (numberTwo[counter] == 4)
{
number[4]++;
}
if (numberTwo[counter] == 5)
{
number[5]++;
}
if (numberTwo[counter] == 6)
{
number[6]++;
}
if (numberTwo[counter] == 7)
{
number[7]++;
}
if (numberTwo[counter] == 8)  
{
number[8]++;
}
if (numberTwo[counter] == 9)
{
number[9]++;
}
} 
for (int numberThree = 0; numberThree <= 9; numberThree++)
{
Console.WriteLine(numberThree + "\t" + number[numberThree]);
}
Console.ReadKey();

如您所见,我已经解决了老师问题的第一部分,但是当我谈到第二部分时,我似乎很困惑,我必须添加一个函数,用户可以键入1来输入新的数字,或者按2退出程序。(该程序在控制台btw中)

烟雾

我将其包装在while循环中,然后将您的逻辑移至单独的方法。

class Program
    {
        static void Main(string[] args)
        {
            EnterNumber();
            Console.ReadKey();

            bool doEnd = false;

            while (!doEnd)
            {
                Console.WriteLine("");
                Console.WriteLine("1.Assign New Set of Integers");
                Console.WriteLine("2.Exit");
                ConsoleKeyInfo info = Console.ReadKey();
                int val;
                if (!int.TryParse(info.KeyChar.ToString(), out val))
                {
                    // Error handling...
                }
                switch (val)
                {
                    case 1: EnterNumber();
                        break;
                    case 2:
                        doEnd = true;
                        break;
                }
            }

        }

        private static void EnterNumber()
        {
            string input;
            int userNumber;

            Console.Write("Enter a number: ");
            input = Console.ReadLine();
            userNumber = int.Parse(input);

            Console.WriteLine("\n" + "Number Occurrences");
            int[] number = new int[10];
            int[] numberTwo = new int[userNumber];
            Random randNum = new Random();

            for (int counter = 0; counter < userNumber; counter++)
            {
                numberTwo[counter] = randNum.Next(10);
                if (numberTwo[counter] == 0)
                {
                    number[0]++;
                }
                if (numberTwo[counter] == 1)
                {
                    number[1]++;
                }
                if (numberTwo[counter] == 2)
                {
                    number[2]++;
                }
                if (numberTwo[counter] == 3)
                {
                    number[3]++;
                }
                if (numberTwo[counter] == 4)
                {
                    number[4]++;
                }
                if (numberTwo[counter] == 5)
                {
                    number[5]++;
                }
                if (numberTwo[counter] == 6)
                {
                    number[6]++;
                }
                if (numberTwo[counter] == 7)
                {
                    number[7]++;
                }
                if (numberTwo[counter] == 8)
                {
                    number[8]++;
                }
                if (numberTwo[counter] == 9)
                {
                    number[9]++;
                }
            }
            for (int numberThree = 0; numberThree <= 9; numberThree++)
            {
                Console.WriteLine(numberThree + "\t" + number[numberThree]);
            }
        }
    }

请注意,如果用户从不按2,这将是一个无限循环。此外,请更改int.Parse,因为它可能会使您的应用程序崩溃。尝试改用int.TryParse

https://msdn.microsoft.com/zh-CN/library/f02979c7(v=vs.110).aspx

如评论中所述,您实际上可以使用字典来优化代码。

private static void UseDict()
{
    Console.Write("Enter a number: ");
    string input = Console.ReadLine();
    int number;
    if (!int.TryParse(input, out number))
    {
        // Error handling here.
    }
    var userNumber = int.Parse(input);

    Console.WriteLine("\n" + "Number Occurrences");
    var dict = new Dictionary<int, int>();
    Random randNum = new Random((int)DateTime.Now.Ticks);

    for (int counter = 0; counter < userNumber; counter++)
    {
        var generatedNumber = randNum.Next(0, 10);
        if (!dict.ContainsKey(generatedNumber))
        {
            // Create key.
            dict.Add(generatedNumber, 0);
        }
        // Increase count.
        dict[generatedNumber]++;
    }
    for (int i = 1; i < 10; i++)
    {

        var count = dict.ContainsKey(i) ? dict[i] : 0;
        Console.WriteLine("{0} - {1}", i, count);
    }

    Console.ReadKey();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

安排C#控制台应用程序

来自分类Dev

Gmail控制台应用程序C#

来自分类Dev

使C#控制台应用程序与wpf交互

来自分类Dev

河内C#塔控制台应用程序。

来自分类Dev

C#控制台应用程序即服务

来自分类Dev

控制台应用程序 c# 舍入

来自分类Dev

VS 2017 控制台应用程序 (C#)

来自分类Dev

从其他C#控制台应用程序运行C#控制台应用程序

来自分类Dev

如何从C#中的控制台应用程序运行Web应用程序

来自分类Dev

C#控制台应用程序...析因应用程序代码

来自分类Dev

将 c# 控制台应用程序转换为 c# windows 窗体应用程序

来自分类Dev

如果用户在C#程序中打印“ x”,如何使控制台应用程序退出?

来自分类Dev

调用WCF的C#控制台应用程序的窗口调度程序失败

来自分类Dev

带有任务计划程序的C#控制台应用程序退出代码

来自分类Dev

C#单元测试(Nunit)控制台应用程序的主要方法?

来自分类Dev

在C#控制台应用程序中使用Windows 8 API(VideoCaptureDevices)

来自分类Dev

C#很小的控制台应用程序(Visual Studio 2012)中的默认线程

来自分类Dev

特定计算机上C#控制台应用程序的奇怪问题

来自分类Dev

如何从C#控制台应用程序发送通知

来自分类Dev

C#控制台应用程序中剪贴板的奇怪行为

来自分类Dev

从MATLAB内部运行c#控制台应用程序

来自分类Dev

强制控制台应用程序即使在C#中处于繁忙状态也要打印

来自分类Dev

通过COM公开C#控制台应用程序功能

来自分类Dev

将C#控制台应用程序设置为Unicode输出

来自分类Dev

可以从控制台运行但不创建窗口的C#应用程序

来自分类Dev

C#将控制台应用程序转换为服务

来自分类Dev

从C#控制台应用程序连接到github API时出现401错误

来自分类Dev

C#控制台应用程序错误-无法识别/正确评估返回的int

来自分类Dev

在C#控制台应用程序中添加“ --help”参数

Related 相关文章

  1. 1

    安排C#控制台应用程序

  2. 2

    Gmail控制台应用程序C#

  3. 3

    使C#控制台应用程序与wpf交互

  4. 4

    河内C#塔控制台应用程序。

  5. 5

    C#控制台应用程序即服务

  6. 6

    控制台应用程序 c# 舍入

  7. 7

    VS 2017 控制台应用程序 (C#)

  8. 8

    从其他C#控制台应用程序运行C#控制台应用程序

  9. 9

    如何从C#中的控制台应用程序运行Web应用程序

  10. 10

    C#控制台应用程序...析因应用程序代码

  11. 11

    将 c# 控制台应用程序转换为 c# windows 窗体应用程序

  12. 12

    如果用户在C#程序中打印“ x”,如何使控制台应用程序退出?

  13. 13

    调用WCF的C#控制台应用程序的窗口调度程序失败

  14. 14

    带有任务计划程序的C#控制台应用程序退出代码

  15. 15

    C#单元测试(Nunit)控制台应用程序的主要方法?

  16. 16

    在C#控制台应用程序中使用Windows 8 API(VideoCaptureDevices)

  17. 17

    C#很小的控制台应用程序(Visual Studio 2012)中的默认线程

  18. 18

    特定计算机上C#控制台应用程序的奇怪问题

  19. 19

    如何从C#控制台应用程序发送通知

  20. 20

    C#控制台应用程序中剪贴板的奇怪行为

  21. 21

    从MATLAB内部运行c#控制台应用程序

  22. 22

    强制控制台应用程序即使在C#中处于繁忙状态也要打印

  23. 23

    通过COM公开C#控制台应用程序功能

  24. 24

    将C#控制台应用程序设置为Unicode输出

  25. 25

    可以从控制台运行但不创建窗口的C#应用程序

  26. 26

    C#将控制台应用程序转换为服务

  27. 27

    从C#控制台应用程序连接到github API时出现401错误

  28. 28

    C#控制台应用程序错误-无法识别/正确评估返回的int

  29. 29

    在C#控制台应用程序中添加“ --help”参数

热门标签

归档