프로그램은 먼저 배열에 저장할 요소의 수를 사용자에게 요청한 다음 숫자를 요청합니다.
이것은 내 코드입니다
static void Main(string[] args)
{
Console.Write("How many numbers do you want to store in array: ");
int n = Convert.ToInt32(Console.ReadLine());
int[] numbers = new int[n];
int min = numbers[0];
int max = numbers[0];
for (int i = 0; i < n; i++)
{
Console.Write("Enter number {0}: ", i+1);
numbers[i] = Convert.ToInt32(Console.ReadLine());
}
for (int i = 0; i < n; i++)
{
if (min > numbers[i]) min = numbers[i];
if (max < numbers[i]) max = numbers[i];
}
Console.WriteLine("The minimum is: {0}", min);
Console.WriteLine("The maximum is: {0}", max);
Console.ReadKey();
}
}
}
하지만 최소값은 항상 0인데 왜 그럴까요?
문제는 초기화하고 있다는 것입니다 min
및 max
에 numbers[0]
이전 번호가 채워집니다, 그래서 그들은 모두 제로로 세트를 받고 있습니다. 이것은 min
(모든 숫자가 양수인 경우) 및 max
(모든 숫자가 음수 인 경우) 모두 잘못되었습니다 .
블록을 이동하면
int min = numbers[0];
int max = numbers[0];
행 이후 블록
for (int i = 0; i < n; i++)
{
Console.Write("Enter number {0}: ", i+1);
numbers[i] = Convert.ToInt32(Console.ReadLine());
}
다음 min
과 max
모두 괜찮 제 1 입력 번호로 초기화한다. 사실 for
다음 번호 만 확인하도록 루프를 제한 할 수 있습니다 .
for (int i = 1; i < n; i++)
....
사용자의 값 n
이 0보다 큰지 확인하십시오 !
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다