![](/img/trans.png)
[英]C# How do I error check the input ensuring only integers between 1-100 are accepted
[英]How do you make an array of 1000 random integers between 1-100
如何編程c#以在1-100之間創建1000個隨機整數的數組。
然后你怎么得到一個人輸入一個數字,例如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!");
從for loop
開始,在每次迭代中調用random function
並將結果放在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);
array = [...Array(1000).keys()].sort((x, y) => { let ren = Math.random() if (ren == 0.5) return 0; return ren > 0.5 ? 1 : -1 })
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.