using System;
using System.Linq;
namespace Loto
{
class Program
{
static void Main(string[] args)
{
short[] tirage = new short[6]; //array that contains the numbers
short nbTirage; //the number randomed
for (int i = 0; i < 6; i++)
{
nbTirage = NombreAleatoire();
while (tirage.Contains(nbTirage)) //if the number has already been drawn
{
nbTirage = NombreAleatoire(); //we random another one
}
Console.Write(nbTirage + " "); //writing the result
}
}
static short NombreAleatoire()
{
Random nb = new Random();
return (short)nb.Next(1, 49);
}
}
}
これは完全なプログラムです。C#プログラムはステップオーバーモードでのみ正常に動作します
1から49までの7つのユニークな数字が含まれています。このプログラムはデバッグモードでうまく動作しますが、exeから実行すると同じ数の7倍の値が得られます。その原因は何ですか?私はVisual Studioを使用しています。
Haveあなたはプログラムを再構築しようとしましたか? – Needham
あなたは1つのランダムオブジェクトを保持し、次のオブジェクトを1つ呼び出す必要があります。+「tirage」を埋めていない+簡潔さのために名前空間とクラスを削除する可能性があります。 –
LOTTOプログラムを作成しようとすると、勝つ..そうでなければ、私たち全員がloooooooooong時間前に金持ちになっていただろう。さらに、デバッガを使用してコードをステップ実行し、あなたが作成しているオブジェクトを検査すると、不足がどこで起きているかすぐにわかる。 – MethodMan