//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
4 replies to this topic
#1
Posted 15 January 2011 - 08:20 PM
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
|
|
|
#2
Posted 16 January 2011 - 02:00 AM
Possibly because your printf string has 2 variables and you try to put 3 in it.
Note that your program won't find the largest / smallest if 2 numbers are equal.
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
Posted 16 January 2011 - 06:14 AM
Where do you assign a value to smallest?
Where do you assign a value to largest?
Where do you assign a value to largest?
#4
Posted 18 January 2011 - 07:27 PM
I made a few changes to your program here is how it looks now
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.
//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
Posted 19 January 2011 - 02:58 AM
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.
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


Sign In
Create Account


Back to top









