в настоящее время работаю над заданием, и мне нужно прочитать файл чисел и отобразить общее количество чисел, общее количество четных чисел, общее количество нечетных чисел и средние значения всех трех. В настоящее время я изо всех сил пытаюсь найти среднее значение четных и нечетных чисел. Я должен отображать среднее значение четного числа и среднее значение нечетного числа. Я нашел общее среднее значение, используя parseInt для преобразования строки чисел, которую я прочитал, в целые числа, чтобы я мог вычислить среднее значение, но когда я попытался сделать то же самое для четных и нечетных чисел, я не смог заставить его работать
вот мой текущий код:
public class Homework1 {
public static void main(String[] args) throws IOException {
// reads file in
File num = new File("numbers.txt");
Scanner inputFile = new Scanner(num);
// creates rounding object
DecimalFormat rounding = new DecimalFormat("#.##");
// neccesary variables
int count = 0;
double numbers =0;
int evenNum =0;
int oddNum =0;
double avg;
double evenAvg;
double oddAvg;
double sum = 0.0;
double evenSum = 0.0;
double oddSum = 0.0;
// reads in numbers file until last line is read
while(inputFile.hasNext())
{
String nums = inputFile.nextLine();
// converts string to ints so numbers can be added
sum += Integer.parseInt(nums);
// converts string to ints to so odd/even nums can be distinguished
numbers = Integer.parseInt(nums);
// updates total number count
count++;
// separates evens from odds
if(numbers % 2 == 0)
{
evenNum++;
evenSum += Integer.parseInt(nums);
}
else
oddNum++;
evenSum += Integer.parseInt(nums);
}
// calculates total num average
avg = sum/count;
// evenAvg =
// oddAvg =
// output of credentials and results
System.out.println("There are " +count+ " numbers in the file"+"\n");
System.out.println("There are " +evenNum+ " even numbers"+"\n");
System.out.println("There are " +oddNum+ " odd numbers"+"\n");
System.out.println("The total average value is " +rounding.format(avg)+"\n");
System.out.println("The odd number average is " +rounding.format(evenAvg)+"\n");
System.out.println("The even number average is " +rounding.format(oddAvg)+"\n");
}
Выход:
There are 982 numbers in the file
There are 474 even numbers
There are 508 odd numbers
The total average value is 50362.43
else oddNum++; evenSum += Integer.parseInt(nums);
- person Scary Wombat   schedule 07.02.2019else
должны быть фигурные скобки для заключения двух операторов. Кроме того, вы увеличиваете сумму четных чисел в блоке нечетных. - person ernest_k   schedule 07.02.2019evenAvg = oddSum/oddNum; oddAvg = evenSum/evenNum;
, после чего должны появиться ожидаемые результаты. - person davedwards   schedule 07.02.2019