это мой кодрасчета максимальных и средних входных чисел
import java.util.*;
public class testq
{
public static void main (String [] args)
{
int max = 0;
int sum = 0;
int count = 0;
int age, maximum;
double average;
Scanner sc = new Scanner(System.in);
age = sc.nextInt();
while (age != 0)
{
System.out.println("enter age");
age = sc.nextInt();
if (age < 0 && age > 120)
{
System.out.println("enter numbers between 1 to 120");
age = sc.nextInt();
}
else
{
count ++;
sum = sum + age;
maximum = getMax(max, age);
average = getAve(sum, count);
}
}
System.out.println(" max is" + max + "average is" + average);
}
public static int getMax (int max, int age)
{
if (max < age)
{
max = age;
}
return max;
}
public static double getAve (int sum, int count)
{
double average;
average = (double)sum/(double)count;
return average;
}
}
это то, что я есть я не нужно вводить значения от 1 до 120 до 0 на вход и вычислить максимальное и среднее значение этих значений, если я компиляции этот код я получаю сообщение об ошибке
«средний, возможно, не был инициализирован»
я думал, может быть нечто неправильно с графом, поэтому метод вычисления среднего не может быть выполнено должным образом. я не могу думать о чем-то еще, чем в тот момент, могу ли я получить помощь, что пошло не так, пожалуйста?
редактировать *
мой код выглядит, как это сейчас
import java.util.*;
public class testq
{
public static void main (String [] args)
{
int max = 0;
int sum = 0;
int count = 0;
int age, maximum;
double average;
Scanner sc = new Scanner(System.in);
System.out.println("enter age");
age = sc.nextInt();
while (age != 0)
{
System.out.println("enter age");
age = sc.nextInt();
if (age < 0 || age > 120)
{
System.out.println("enter numbers between 1 to 120");
age = sc.nextInt();
}
else
{
count ++;
sum = sum + age;
}
}
maximum = getMax(max, age);
average = getAve(count, sum);
System.out.println(" maximum is " + max + "average is " + average);
}
но проблема теперь Макс всегда 0 и среднее значение всегда близко к 0. Кроме того, когда я ввода номера он принимает отрицательный значения, а также, например,
enter age
-10
enter age
-10
enter numbers between 1 to 120
-10
enter age
-10
enter numbers between 1 to 120
0
я хотел из положить «ввести число от 1 до 120 EVERYTIME недействительного номера вводится
ив попытался изменить состояние пока к (возраст! = 0 & & возраст> = 1 & & возраст < = 120), но не работали
Локальные переменные не имеют значений по умолчанию. Просто установите среднее значение по умолчанию на 0, чтобы начать с – Li357
. Возможный дубликат [переменная, возможно, не была инициализирована] (http://stackoverflow.com/questions/36370042/variable-might-not-have-been-initialised) –
У меня есть изменил код, который он компилирует сейчас, но у меня появилось больше проблем @AndrewL. –