0

I'm currently stuck with MOOC exercise 36. My problem is I can't make my program store odd and even numbers. I understand I need to use the modulus operator % 2 so the program can find if the reminder is 0 - 1 making is an even or odd number.

    // program in this project exercises 36.1-36.5
    // actually this is just one program that is split in many parts

    Scanner reader = new Scanner(System.in);
    System.out.println("Type numbers: ");
    int tal; //Min reader funktion

    int sum = 0;
    int numbersTyped = 0;
    double average = 0.0;
    int even = 0;
    int odd = 0;

    while (true) {
        tal = Integer.parseInt(reader.nextLine());
        if (tal == -1){
            System.out.println("Thank you and see you later!");
            System.out.println("The sum is: " + sum);
            System.out.println("How many numbers: " + numbersTyped);
            System.out.println("Average: " + average);
            System.out.println("Even numbers: " + even);
            System.out.println("Odd numbers: " + odd);
            break;
        }
        if (tal >= 0){
            sum += tal;
            numbersTyped++;
            average = (double) sum / (double) numbersTyped;
        } else if (tal > 0){
            tal %= 2;
            even = tal;
        } else if (tal > 1) {
            tal %= 2;
            odd = tal;
        }

    }

}
Mark Rotteveel
  • 100,966
  • 191
  • 140
  • 197
  • Possible duplicate of [Division of integers in Java](https://stackoverflow.com/questions/7220681/division-of-integers-in-java) – OH GOD SPIDERS Sep 22 '17 at 08:53

2 Answers2

1

try executing this code:

// program in this project exercises 36.1-36.5
        // actually this is just one program that is split in many parts

        Scanner reader = new Scanner(System.in);
        System.out.println("Type numbers: ");
        int tal; //Min reader funktion

        int sum = 0;
        double doubleSum =0.0d;;
        int numbersTyped = 0;
        double doubleNumbersTyped = 0.0d;
        double average = 0.0;
        int even =0;
        int odd = 0;

        while (true) {
            tal = Integer.parseInt(reader.nextLine());
            if (tal == -1){
                System.out.println("Thank you and see you later!");
                System.out.println("The sum is: " + sum);
                System.out.println("How many numbers: " + numbersTyped);
                System.out.println("Average: " + average);
                System.out.println("Even numbers: " + even);
                System.out.println("Odd numbers: " + odd);
                break;
            }
            if (tal >= 0){
                sum += tal;
                numbersTyped++;
                doubleSum = (double) sum;
                doubleNumbersTyped = (double) numbersTyped;
                average = doubleSum / doubleNumbersTyped;
            } 
            if (tal > 0 && tal %2==0){
                even++;
            } 
            if (tal > 1 && tal %2!=0) {
                odd++;
            }

        }
Nidhi257
  • 754
  • 1
  • 5
  • 23
0
    Scanner reader = new Scanner(System.in);
    System.out.println("Type numbers:");
    int sum=0;
    int i=0;
    int even=0;
    int odd=0;
    double average=0.0;
    while (true) {
    int number=Integer.parseInt(reader.nextLine());
        if (number!=-1) {
            sum+=number;
            i++;
            average=(double)sum/(double)i;
        }
        if (number==-1) {
            System.out.println("Thank you and see you later!");
            System.out.println("The sum is "+sum);
            System.out.println("How many numbers:"+i);
            System.out.println("The average is "+average);
            System.out.println("Even numbers "+even);
            System.out.println("Odd numbers "+odd);
            break;
        } 
        if (number%2==0) {
            even++;
        }
        if (number%2!=0) {
            odd++;
        }
freeman
  • 1
  • 1