Я делаю простую программу, которая принимает на вход 3 целых числа (n1, n2, n3), поэтому, например, если 3 числа были 6,12,4, она должна вернуться:
Integers entered: 6,12,4
Sum = 22
Average = 7.33...
Smallest = 4
Largest = 12
Это отображается в текстовом поле с помощью JOptionPane.showMessageDialog. Код помещается в цикл, так что для каждых трех введенных целых чисел он возвращает то, что показано выше. Однако, когда я запускаю программу, она показывает следующее:
Integers entered: 6,6,6
Sum = 22
Average = 7.33...
Smallest = 6
Largest = 6
значения для n2,n3, наименьшее и наибольшее показывают значение для n1. Вот код внутри цикла, который вызывает у меня проблемы:
JOptionPane.showMessageDialog(null, title);
String num1 = JOptionPane.showInputDialog("Enter 1st integer: ");
int n1 = Integer.parseInt(num1);
String num2 = JOptionPane.showInputDialog("Enter 2nd integer: ");
int n2 = Integer.parseInt(num2);
String num3 = JOptionPane.showInputDialog("Enter 3rd integer: ");
int n3 = Integer.parseInt(num3);
int sum = n1 + n2 + n3; //find sum
double avg = (double)sum/3; //find average
//find smallest integer
int smallest = n1;
if(n2 < smallest) n2 = smallest;
if(n3 < smallest) n3 = smallest;
//find largest integer
int largest = n1;
if(n2 > largest) n2 = largest;
if(n3 > largest) n3 = largest;
JOptionPane.showMessageDialog(null, "Integers entered: " + n1 + ", " + n2 + ", " + n3
+ "\nSum = " + sum
+ "\nAverage = " + avg
+ "\nSmallest = " + smallest
+ "\nLargest = " + largest);
Как мне исправить это, чтобы n2, n3, самый маленький, самый большой отображали свои правильные значения?
if(n2 < smallest) n2 = smallest;
Почему вы перезаписываете введенный вами номер? Разве это не должно бытьsmallest = n2
? - person John3136   schedule 03.12.2018