halium
halium

Reputation: 33

Average of numbers program outputting incorrect result

Am trying to write simple program to find average of 3 int values, but it always seems to get the average wrong

import java.util.Scanner;
public class IntegerAverage {

public static void main(String[] args) 

{
   
    Scanner in = new Scanner(System.in);
    int num1;
    int num2;
    int num3;

    // Ask user
    System.out.println("Input 1st number");
    num1 = in.nextInt();
    System.out.println("Input 2nd number");
    num2 = in.nextInt();
    System.out.println("Input 3rd number");
    num3 = in.nextInt();

    // Print answer
    System.out.println("The average is:"+ ((num1 + num1 + num3)/3));
}
}

Help is greatly appreciate

Upvotes: 1

Views: 43

Answers (2)

UweD
UweD

Reputation: 222

Besides having num1 twice and missing num2, as already mentioned above, you will always get integer-results only, e.g. for num1 = 1, num2 = 2 and num3 = 2 your code will plot 1 as result instead of 1.667. You might enforce double-results in your output by writing

System.out.println("The average is:"+ ((num1 + num2 + num3) / 3.0));

Upvotes: 1

Spectric
Spectric

Reputation: 31992

It's supposed to be:

import java.util.Scanner;
public class IntegerAverage {

public static void main(String[] args) 

{
   
    Scanner in = new Scanner(System.in);
    int num1;
    int num2;
    int num3;

    // Ask user
    System.out.println("Input 1st number");
    num1 = in.nextInt();
    System.out.println("Input 2nd number");
    num2 = in.nextInt();
    System.out.println("Input 3rd number");
    num3 = in.nextInt();

    // Print answer
    System.out.println("The average is:"+ ((num1 + num2 + num3)/3));
}
}

You accidentally added num1 twice, and forgot num2.

Upvotes: 0

Related Questions