import java.util.Scanner;
public class PeopleWeights {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
final int NUM_VALS = 5;
int [] personsWeight = new int[NUM_VALS];
int i = 0;
for (i = 0; i < NUM_VALS; ++i) {
System.out.print("Enter weight " + (i + 1) + ": ");
System.out.println();
personsWeight[i] = scnr.nextInt();
}
double sumVal = 0.0;
for (i = 0; i < NUM_VALS; ++i) {
sumVal = sumVal + personsWeight[i];
}
double avgVal = 0.0;
for (i = 0; i < NUM_VALS; ++i) {
avgVal = sumVal/NUM_VALS;
}
double maxVal = 0.0;
for (i = 0; i < NUM_VALS; ++i) {
maxVal = personsWeight[0];
if (maxVal < personsWeight[i]) {
maxVal = personsWeight[i];
}
}
System.out.println();
System.out.println(personsWeight[1] + " " + personsWeight[2] + " "
+ personsWeight[3] + " " + personsWeight[4] + " " + personsWeight[5]);
//I know that this can be cleaner but this is where the
//problem occurs with a InputMismatchException.
//I know it's caused by the double being introduced
//but don't know how to fix it.
System.out.println("Total weight: " + sumVal);
System.out.println("Average weight: " + avgVal);
System.out.println("Max weight: " + maxVal);
return;
}
}
Входы заключаются в следующем: 236, 89,5, 142, 166,3, 93.Как принимать и выводить как парные, так и интс в массиве?
Я хочу обрабатывать выходные номера так же, как они вводятся. Двойной или Int.
В любом случае я могу заставить массив принимать оба типа чисел в сканере или мне придется использовать другой способ, которым он работает?
Нормальным было бы рассматривать все как «двойное». Вы можете хранить 236 в 'double' без проблем. Почему имеет значение, что вы храните его как целое? Какое нежелательное последствие было бы для того, чтобы сохранить его как двойное? – ajb
Кроме того, 'InputMismatchException' происходит в этой строке:' personsWeight [i] = scnr.nextInt(); 'и не имеет ничего общего с типом массива. Это связано с использованием 'nextInt()' на входе, в котором есть десятичное число. –