我需要有关数组的两个类似程序的帮助。
第一个程序是关于用户可以输入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次。
第二点是,我真的不知道如何将字符串放入数组中。由于这两个程序的相似性,我想知道该怎么做。
答案 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;
}
}