가장 큰 숫자와 가장 작은 숫자를 결정하는 프로그램을 만드는 것은 사용자가 입력 한 일련의 숫자입니다. 내 코드에 대한 몇 가지 테스트 사례를 만들었지 만 모두 해결되었지만 가장 간단한 테스트 사례에서는 실패합니다. 사용자가 단일 번호를 입력 할 때 예를 들어 사용자가 종료 값을 25로 설정 한 다음 -1을 입력하고 마지막으로 값 종료를 입력하면 출력은 Largest : -1 및 Smallest : -1이어야합니다. 그러나, 내 코드는 Largest : 0과 Smallest : -1을 출력 할 것입니다. (루프를 실행하기 전에 최대 값을 0으로 초기화했기 때문에) 이것이 발생하는 이유는 무엇입니까?하지만 어떻게 해결할 수 있습니까? 이미 min
와 함께 할 것처럼이 테스트 케이스를 통과하는 방법?
여기 내 코드의 ... 대신 max = 0
초기화
Scanner scan = new Scanner(System.in);
// Declaration variables
double min;
double max = 0;
System.out.println("Enter terminating number: ");
double terminator = scan.nextDouble();
System.out.println("Enter a number: ");
double num = scan.nextDouble();
min = num;
if (num == terminator) {
System.out.println("There must be one number in the list.");
// break;
} else {
while (num != terminator) {
System.out.println("");
num = scan.nextDouble();
if ((num < min) && (num != terminator)) {
double temp = min;
min = num;
max = temp;
} else if ((num > min) && (num != terminator)) {
max = num;
} else {
max = min;
}
}
System.out.println("Largest: " + max);
System.out.println("Smallest: " + min);
}
'max'는'Double.MIN_VALUE' ...와'min = Double.MAX_VALUE'이어야합니다. – Charles
아주 작은 수 즉, Double.MIN_VALUE로 초기화하고 매우 큰 수로 min을 초기화합니다. 즉 Double.MAX_VALUE ' –
@ c650 당신이 정반대 인 것을 의미한다고 생각합니다 - 최대 값은'Double.MIN_VALUE'이고 최소값은'Double.MAX_VALUE'이어야합니다 –