我正在做一個作業問題,我需要編寫一個輸入五個數字的應用程序,每個數字都在10到100之間(包括10和100)。當每個數字被讀取時,只有當它不是已經讀取的數字的副本時才顯示它。提供最糟糕的情況,其中所有五個數字都不相同。爲了解決這個問題,儘可能使用最小的數組,並在用戶輸入每個新值後顯示一組完整的唯一值。使用數組顯示一組唯一的值
我到目前爲止工作正常。只有當程序運行時,如果所有五個數字都是唯一的,我會一直收到未處理的錯誤。它告訴我索引超出了數組的範圍。只有我不確定它爲什麼這樣做,而我在for循環中看不到任何錯誤。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ten_Seven_Thirteen
{
class Program
{
static void Main(string[] args)
{
const int SIZE = 5;
int[] nums = new int[SIZE];
int a;
int b;
int c = 0; //c is the amount of numbers currently entered
int number;
Console.WriteLine("Input five numbers between 10 and 100 (inclusive): \n");
for (int count = 0; count < SIZE; count++)
{
number = Convert.ToInt32(Console.ReadLine());
if (number >= 10 && number <= 100) //Verify whether or not the number meets the criteria
{
for (a = 0; a < c; a++)
{
// The following if condition checks for duplicate entrees.
if (number == nums[a])
{
Console.WriteLine("Duplicate number.\n");
break; //Breaking the loop prevents the duplicate number from entering the array
}
} // end for
// if number is not a duplicate, enter it in array
if (number != nums[a])
{
nums[c++] = number;
} // end if - not duplicate
Console.WriteLine("The non-duplicate values are:\n");
//display array of unique numbers
for (b = 0; nums[b] != 0 && b < SIZE; b++)
{
Console.WriteLine(nums[b]);
} // end for loop and display array
} // end if - validate and test
else
Console.WriteLine("invalid number.");
Console.WriteLine("\n");
} // end for - get 5 numbers
}
}
}// end Ten_Seven_Thirteen