Jump to content

any direction will be appreciated

- - - - -

  • Please log in to reply
4 replies to this topic

#1
dcord

dcord

    Newbie

  • Members
  • PipPip
  • 25 posts
I have an assignment. write a program woith three integers and display the SUM, AVERAGE,PRODUCT,SMALLEST, and LARGEST numbers. I have the sum the average and the product working fine. I was wondering if anyone can look this over and tell me why the smallest and largest will not display

//program to display sum, product, average, smallest and largest numbers
 
import java.util.Scanner;
 
public class SmallestAndLargest
{
    public static void main(String[] args) 
    {
        Scanner input = new Scanner (System.in);
        int number1;
        int number2;
        int number3;
        int largest;
        int smallest;
        int sum;
        int product;
        int average;
        System.out.println("Please enter  first number");
          number1 = input.nextInt();
        System.out.println( "Please enter second number");
          number2 = input.nextInt();
        System.out.println("Please enter third number");
          number3 = input.nextInt();
  smallest = 1;
  largest = 1;
        // Find the largest number
        if (( number1 > number2 ) && ( number1 > number3 ))
            System.out.printf( "%d > %d\n", number1, number2, number3 );
   
        else if (( number2 > number1 ) && (number2 > number3 ))
            System.out.printf( "%d > %d\n", number1, number2, number3 );
   
        else if (( number3 > number1 ) && (number3 > number2 ))
            System.out.printf( "%d > %d\n", number1, number2, number3 );
   
        //Find the smallest number
        if ((number1 < number2) && ( number1 < number3 ))
            System.out.printf( "%d < %d\n", number1, number2, number3);
   
        else if ((number2 < number1) && ( number2 < number3 ))
            System.out.printf("%d < %d \n", number1, number2, number3 );
   
        else if (( number3 < number1) && ( number3 < number2 )) 
            System.out.printf("%d < %d\n", number1, number2, number3 );
   
   sum = number1 + number2 + number3;
        product = number1 * number2 * number3;
        average = sum / 3;
  
  System.out.printf("The sum is %d" + "\n", sum);
        System.out.printf("The average is %d" + "\n", (sum /3));
        System.out.printf("The product is %d" + "\n", product);
  
      
    } // end method main
} // end class smallestandlargest


#2
wim DC

wim DC

    Writes binary right handed and hex left handed

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 2,084 posts
  • Programming Language:Java, JavaScript, PL/SQL
  • Learning:Java
Possibly because your printf string has 2 variables and you try to put 3 in it.
System.out.printf( "[COLOR="lime"]%d[/COLOR] > [COLOR="red"]%d[/COLOR]\n", [COLOR="lime"]number1[/COLOR], [COLOR="red"]number2[/COLOR], [COLOR="#9932cc"]number3[/COLOR] );

Note that your program won't find the largest / smallest if 2 numbers are equal.

#3
WingedPanther

WingedPanther

    A spammer's worst nightmare

  • Moderators
  • 16,831 posts
  • Location:Upstate, South Carolina
  • Programming Language:C, C++, PL/SQL, Delphi/Object Pascal, Pascal, Transact-SQL, Others
  • Learning:Java, C#, PHP, JavaScript, Lisp, Fortran, Haskell, Others
Where do you assign a value to smallest?
Where do you assign a value to largest?
Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog

#4
Quillion

Quillion

    Newbie

  • Members
  • Pip
  • 7 posts
I made a few changes to your program here is how it looks now

//program to display sum, product, average, smallest and largest numbers

 

import java.util.Scanner;

 

public class SmallestAndLargest

{

    public static void main(String[] args) 

    {

        Scanner input = new Scanner (System.in);

        int number1;

        int number2;

        int number3;

        int largest;

        int smallest;

        int sum;

        int product;

        int average;

        System.out.println("Please enter  first number");

          number1 = input.nextInt();

        System.out.println( "Please enter second number");

          number2 = input.nextInt();

        System.out.println("Please enter third number");

          number3 = input.nextInt();


        [COLOR="red"]// Find the largest number

        if (( number1 > number2 ) && ( number1 > number3 ))

        {

            System.out.printf( "%d > %d\n", number1, number2);

            System.out.printf( "%d > %d\n", number1, number3);

            largest = number1;

        }

   

        else if (( number2 > number1 ) && (number2 > number3 ))

        {

            System.out.printf( "%d > %d\n", number2, number1);

            System.out.printf( "%d > %d\n", number2, number3);

            largest = number2;

        }

   

        else if (( number3 > number1 ) && (number3 > number2 ))

        {

            System.out.printf( "%d > %d\n", number3, number1);

            System.out.printf( "%d > %d\n", number3, number2);

            largest = number3;

        }

   

        //Find the smallest number

        if ((number1 < number2) && ( number1 < number3 ))

        {

            System.out.printf( "%d < %d\n", number1, number2);

            System.out.printf( "%d < %d\n", number1, number3);

            smallest = number1;

        }

   

        else if ((number2 < number1) && ( number2 < number3 ))

        {

            System.out.printf( "%d < %d\n", number2, number1);

            System.out.printf( "%d < %d\n", number2, number3);

            smallest = number2;

        }

   

        else if (( number3 < number1) && ( number3 < number2 )) 

         {

            System.out.printf( "%d < %d\n", number3, number1);

            System.out.printf( "%d < %d\n", number3, number2);

            smallest = number3;

        }[/COLOR]

   

   sum = number1 + number2 + number3;

        product = number1 * number2 * number3;

        average = sum / 3;

  

  System.out.printf("The sum is %d" + "\n", sum);

        [COLOR="red"]System.out.printf("The average is %.2f" + "\n", average);[/COLOR]

        System.out.printf("The product is %d" + "\n", product);

        [COLOR="red"]System.out.println("The largest number is: "+largest);

        System.out.println("The smallest number is: "+smallest);[/COLOR]

  

      

    } // end method main

} // end class smallestandlargest

And I fixed your if statements for you, hope this is it. That was fun, also remember to display code in java you do not have to use printf like in c or c++, you can use println, use printf or String.format only if you want to display float values to like 2 decimal points lets say.

#5
sam_l

sam_l

    Learning Programmer

  • Members
  • PipPipPip
  • 52 posts
I would like to suggest something to you that while not entirely on topic can provide you with a better grade and perhaps a better design understanding. You have all of your code in the main function providing no re-usability, modularity, and minimizes readability. I could recommend the following actions.

Store the numbers in an array or a vector. Then you can write separate functions as follows (pseudo code).

int sum(vector Numbers); // Loop and return sum
int/float average(vector Numbers); // (return (sum(Numbers) / Numbers.size());
int product(vector Numbers); // Loop and return product
int min(vector Numbers); // Loop, store smallest val, and return min val
int max(vector Numbers); // Loop, store largest val, and return max val

Good luck and if you have any further questions feel free to send me a message.




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users