Какова логическая ошибка в этом цикле? - PullRequest
1 голос
/ 01 апреля 2012

для этих рекомендаций:

Напишите цикл, который читает положительные целые числа из стандартного ввода и завершается, когда он читает целое число, которое не является положительным.После завершения цикла он выводит через пробел и в одну строку сумму всех прочитанных четных чисел и сумму всех прочитанных нечетных целых чисел.Объявите все необходимые переменные.

ПРИЗНАЙТЕ наличие переменной stdin, которая ссылается на объект Scanner, связанный со стандартным вводом.

Я написал этот код, но это программное обеспечение HW не исключает его из-за логической ошибки.Я не могу найти логическую ошибку здесь.кто-то может указать, что с ним не так?

    int sumP=0;
    int sumO=0;
    Scanner stdin = new Scanner (System.in);

    System.out.println("enter an odd or even number");

    while (stdin.nextInt() >= 0){
    if(stdin.nextInt()%2 == 0)
        sumP+= stdin.nextInt();
    else
        sumO += stdin.nextInt();
    }
    System.out.println(sumP + " " + sumO);

Ответы [ 3 ]

7 голосов
/ 01 апреля 2012

Вам нужно сохранить прочитанное вами значение, иначе вы будете использовать разные значения в цикле while и сложении.

int n;
while((n = stdin.readInt()) >= 0) {
    // use the same value of n
0 голосов
/ 10 октября 2013
int number = 1;
while (stdin.hasNextInt() && number > 0)
{
            number = stdin.nextInt();
            if (number % 2 == 0 && number > 0)
                        System.out.print(number + " ");
}

Ответ на этот и многие другие упражнения codelab можно найти на Java Codelab Solutions

0 голосов
/ 27 июля 2013

Это сработало для myprogramminglab - Java

int sum=0;
boolean areMore = true; 
int negative;
while (areMore)
{
    int number = stdin.nextInt();
    if (number <= 0)
    areMore = false;
    else if (number %2 ==0 )
    sum = sum + number;    
else 
     negative = sum + number;
 }    
System.out.println(sum); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...