用随机数计算数组中出现的次数,没有方法或 C# 中的列表
Posted
技术标签:
【中文标题】用随机数计算数组中出现的次数,没有方法或 C# 中的列表【英文标题】:Count the number of occurrences in an array with random numbers without methods or list in C# 【发布时间】:2020-12-07 14:12:46 【问题描述】:我正在尝试用 C# 解决一个练习,如下所示:
编写一个程序,生成 20 个 0 到 9 之间的随机整数并显示每个数字的计数。 使用一个由十个整数组成的数组,比如 counts,来存储 0、1、...、9 的数量。)
这就是我想出的那种工作,但我对 0 一直数 1 的问题有疑问。
using System.Collections.Generic;
using System.Text;
namespace ArrayExercises
class TaskFive
public static void FindNumberCount()
int c0=0,c1=02,c2=0,c3=0,c4=0,c5=0,c6=0,c7=0,c8=0,c9=0;
int[] arr = new int[20];
Random rand = new Random();
Console.WriteLine("Numbers generated ");
for (int i = 0; i < 19; i++)
arr[i] = rand.Next(0, 10);
Console.WriteLine(arr[i]);
foreach(int number in arr)
if (number == 0) c0++;
else if (number == 1) c1++;
else if (number == 2) c2++;
else if (number == 3) c3++;
else if (number == 4) c4++;
else if (number == 5) c5++;
else if (number == 6) c6++;
else if (number == 7) c7++;
else if (number == 8) c8++;
else if (number == 9) c9++;
Console.WriteLine
(
$"Number of 0's: c0 \n" +
$"Number of 1's: c1 \n" +
$"Number of 2's: c2 \n" +
$"Number of 3's: c3 \n" +
$"Number of 4's: c4 \n" +
$"Number of 5's: c5 \n" +
$"Number of 6's: c6 \n" +
$"Number of 7's: c7 \n" +
$"Number of 8's: c8 \n" +
$"Number of 9's: c9"
);
提前致谢:)
【问题讨论】:
1.为什么c1=02? 2. 你的解决方案不是你被问到的:“使用一个由十个整数组成的数组,比如计数,来存储计数......” 那是一个错字。感谢您指出???? 【参考方案1】:你可以这样缩短它
public static void FindNumberCount()
int[] count = new int[10];
Random rand = new Random();
int[] arr = new int[20];
for (int i = 0; i < arr.Length; i++)
arr[i] = rand.Next(0, 10);
Console.WriteLine(arr[i]);
count[arr[i]]++;
for (int i = 0; i < count.Length; i++)
Console.WriteLine($"Number of i's: count[i]");
如果你想画 20 个数字,你应该为 (int i = 0; i
【讨论】:
【参考方案2】:int[] counts = new int[10];
int[] numbers = new int[20];
var random = new Random();
for (int i = 0; i < numbers.Length; i++)
// Generate random numbers
numbers[i] = random.Next(0, 9);
// Increment the count of the generated number
counts[numbers[i]]++;
【讨论】:
这对我来说很有意义。谢谢一百万?【参考方案3】:你使用的 for 循环只循环了 19 次。 您必须将“i
【讨论】:
【参考方案4】:问题出在这一行
for (int i = 0; i < 19; i++)
您用 20 个 int 初始化了一个数组,并且只将值设置为其中的 19 个。 如果您不将值 int 默认设置为零,因此您总是会得到一个额外的零 如下更改您的代码
for (int i = 0; i <= 19; i++)
【讨论】:
感谢 Ansil,这向我展示了我的错误背后的逻辑。我在那里学到了一些东西?【参考方案5】:第一个for循环的停止条件应该是i。那么你的程序应该可以工作了。
这就是我的解决方法:
static void Main(string[] args)
Random random = new Random();
//Fill array with random numbers
int[] array = new int[20];
for (int i = 0; i < array.Length; i++)
array[i] = random.Next(0, 10);
//Count how many times a number occurs
int[] numberCounts = new int[10];
for (int i = 0; i < array.Length; i++)
numberCounts[array[i]]++;
//Print the count of the numbers
for(int i = 0; i < numberCounts.Length; i++)
Console.WriteLine("Number of " + i + "'s: " + numberCounts[i]);
//Keep the console open
Console.ReadLine();
【讨论】:
Henrik 非常详细。非常感谢?以上是关于用随机数计算数组中出现的次数,没有方法或 C# 中的列表的主要内容,如果未能解决你的问题,请参考以下文章