号码计数器

时间:2018-12-30 23:00:16

标签: c# arrays

我需要有关数组的两个类似程序的帮助。

第一个程序是关于用户可以输入0到9之间的任意数字(可以通过输入 输入“ -1”将终止)。 输入完成后,应该输出,输入0到9之间的每个数字的频率。

第二个程序将输入10个名称并将其保存在字符串数组中。输入后,首先应输出所有名称。此后,仅发出不止一次输入的名称。

1。程序的代码:

int cnt = 0;
int input;

while (true)
{
    cnt++;

    Console.WriteLine("Geben Sie bitte die {0,1}. Zahl ein (-1 für Ende):", cnt);
    input = Convert.ToInt32(Console.ReadLine());
    int[] count = new int[10];
    int[] num = new int[cnt];

    if (input > 9)
    {
        break;
    }
    else if (input == -1)
    {
        //Loop through 0-9 and count the occurances
        for (int x = 0; x < 10; x++)
        {
            for (int y = 0; y < num.Length; y++)
            {
                if (num[y] == x)
                    count[x]++;
            }
        }
        //For displaying output only            
        for (int x = 0; x < 10; x++)
            Console.WriteLine("Number " + x + " appears " + count[x] + " times");

对于第二个程序:

int cnt = 10;
string[] name = new string[11];

for (int i = 1; i < 11; i++)
{
    Console.WriteLine("Name Nr.{0,1} eingeben: ", i);
    name[i]++;
    name[i] = Console.ReadLine();

}

for (int x = 0; x < 10; x++)
{
    for (int y = 0; y < name.Length; y++)
    {
        if (i == x)
        {
            //For displaying output only            
            for (int a = 0; a < 10; a++)
                Console.WriteLine("Folgende Namen wurden mehrfach eingegeben : ", name[i]);
            break;

第一个程序的问题是,如果我键入“ -1”,则当我键入4个数字时,数字1-9总是显示它出现0次,而数字0总是显示4次。

第二点是,我真的不知道如何将字符串放入数组中。由于这两个程序的相似性,我想知道该怎么做。

1 个答案:

答案 0 :(得分:0)

首先:不要在每次循环迭代时都初始化数组。首先将它们初始化。
第二件事:您必须在输入-1之前对数字进行计数。看到您输入-1时尝试增加计数,而我假设-1表示程序终止。
第三:将字符串数组作为第二个问题。这样您会更快地得到两个答案。
这是您需要修改的一些代码。

int input;
int[] count = new int[10];

while (true)
{
    Console.WriteLine("Geben Sie bitte die {0,1}. Zahl ein (-1 für Ende): ");
    input = Convert.ToInt32(Console.ReadLine());

    if(input >= 0 && input <= 9)
    {
        for (int x = 0; x < 10; ++x)
        {
            if(x == input)
            {
                count[x] += 1;
            }
        }
    }
    else if (input == -1)
    {
        //Input finished, display of numbers appearances.          
        for (int x = 0; x < 10; x++)
            Console.WriteLine("Number " + x + " appears " + count[x] + " times");
        break;
    }
    else
    {
        break;
    }
}