0

1 から 100 までの 1000 個のランダムな整数の配列を作成するように c# をプログラムする方法を教えてください。

そして、例えば 68 などの数字を入力したときに、どのようにして 68 が何回も表示されたり、まったく機能しないとプログラムに言わせたりすることができます。

私は完全な答えを求めているわけではありません。どこから始めればよいかのヒントが必要なだけです。

これが私が知っていることです:

random 関数と if を使用する必要がありますが、何をどこに置くべきかわかりません。

4

3 に答える 3

2
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!");
于 2013-02-10T16:58:41.553 に答える
0

から始めfor loopます。各反復で、を呼び出し、random function結果をに入れますpublic list。その後、ユーザーが番号を入力するためのダイアログを作成します。リスト内で検索しlambda expressionて、一致する数を確認できます。

于 2013-02-10T16:59:27.010 に答える
0

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);
于 2013-02-10T17:26:36.163 に答える