私のコードには何か問題があります。私は独学で c# を学んでいますが、この章の課題の 1 つは、ユーザーに 10 個の数字を要求し、それらを配列に格納することでした。追加の数字を 1 つ要求するのではありません。次に、プログラムは、追加の数値が配列内の数値の 1 つと一致するかどうかを判断します。今、私が以下に持っているものは機能しますが、配列のサイズである 10 未満の比較数を入力した場合のみです。
修正方法がわかりません。比較の仕方がわかりません。最初に FOR ループを試してみましたが、これは機能しましたが、ループを実行して 10 個すべての数値との比較を表示したため、No! の 9 行が表示されます。そしてYes!の1行。私は休憩を入れました。これで 10 個すべてのカウントが停止しましたが、比較のために 5 を入力すると、No! の 4 行が表示されます。そしてYes!の1つ。以下は、確実に機能させることができる唯一の方法ですが、数値が配列の範囲外にない限りのみです。
数値が 10 を超えるとエラーが発生する理由がわかります。それを比較するために何を使用すればよいかわかりませんが、ユーザーが有効な整数を入力できるようにします。どんな援助も素晴らしいでしょう!
int[] myNum = new int[10];
Console.WriteLine("Starting program ...");
Console.WriteLine("Please enter 10 numbers.");
for (int i = 0; i <= 9; ++i)
{
Console.Write("Number {0}: ", i + 1);
myNum[i] = Int32.Parse(Console.ReadLine());
}
Console.WriteLine("Thank you. You entered the numbers ");
foreach (int i in myNum)
{
Console.Write("{0} ", i);
}
Console.WriteLine("");
Console.Write("Please enter 1 additional number: ");
int myChoice = Int32.Parse(Console.ReadLine());
Console.WriteLine("Thank you. You entered the number {0}.", myChoice);
int compareArray = myNum[myChoice - 1];
if (compareArray == myChoice)
{
Console.WriteLine("Yes! The number {0} is equal to one of the numbers you previously entered.", myChoice);
}
else
{
Console.WriteLine("No! The number {0} is not equal to any of the entered numbers.", myChoice);
}
Console.WriteLine("End program ...");
Console.ReadLine();