你如何编程 c# 来制作一个包含 1000 个 1-100 之间的随机整数的数组。
那么当一个人输入一个数字时你如何得到,例如 68,你如何让程序说 68 出现如此多次或根本不起作用!
我不是要完整的答案,我只需要提示从哪里开始。
这是我所知道的:
我必须使用随机函数和 if 但我不知道在哪里放什么!
int[] iArray = new int[1000];
int counter = 0;
Random random = new Random();
for(int i = 0; i < 1000; i++){
iArray[i] = random.Next(1, 101); //1 - 100, including 100
}
int number = Convert.ToInt32(Console.ReadLine());
foreach(int i in iArray){
if(i == number)count++;
}
Console.WriteLine("The number "+ number+" appears "+count+" times!");
从 a 开始for loop
,在每次迭代中调用 therandom function
并将结果放入 a 中public list
。之后,您创建一个对话框让用户键入一个数字。您可以lambda expression
在列表中搜索以查看您获得了多少匹配项。
在 1-100 之间创建一个包含 1000 个随机整数的数组,当一个人输入一个数字(例如 68)时,如何让程序说 68 出现这么多次
我认为您正在寻找这样的方法:
private static Random rnd = new Random();
public static IEnumerable<int> getRandomNumbers(int count, int lowerbound, int upperbound, int specialNumber = int.MinValue, int specialNumberCount = int.MinValue)
{
List<int> list = new List<int>(count);
HashSet<int> specialNumPositions = new HashSet<int>();
if (specialNumberCount > 0)
{
// generate random positions for the number that must be create at least n-times
for (int i = 0; i < specialNumberCount; i++)
{
while (!specialNumPositions.Add(rnd.Next(0, count)))
;
}
}
while (list.Count < count)
{
if (specialNumPositions.Contains(list.Count))
list.Add(specialNumber);
else
list.Add(rnd.Next(lowerbound, upperbound + 1));
}
return list;
}
您可以通过这种方式使用它:
// ensure that 68 is generated at least 10 times
var list = getRandomNumbers(1000, 1, 100, 68, 10);
如果您只想知道一个数字在列表中出现的频率,您可以使用 Linq:
int count = list.Count(i => i == 68);