Hello, i have to write a program in java where i have to enter three
different numbers, and it will output the largest number. So for
example:
input: 2, 4 ,6 => output: 7
input: 5, 2 ,1 => output: 5
input: 7, 9 ,3 => output: 9
My program works well, but not with negative values, cause it always
returns a 0.
So if i would enter the following:
input: -2, -4 -,6
Then the output should be -2, but i get a '0' instead. Any idea why
this is happening and what i can do to fix it?
Here's my code:
import javax.swing.*;
public class test
{
public static void main(String args[])
{
String input;
int intNum;
int prevNum=0;
int output=0;
for(int i=0; i<3; i++)
{
input = JOptionPane.showInputDialog(null,"Geef een
nummer","input",JOptionPane.INFORMATION_MESSAGE);
intNum = Integer.parseInt(input);
if(prevNum < intNum)
{
prevNum = intNum;
}
}
JOptionPane.showMessageDialog(null,"Het grootste getal is:
"+prevNum,"getal",JOptionPane.INFORMATION_MESSAGE);
}
}
Karl Uppiano - 22 Nov 2006 08:59 GMT
> Hello, i have to write a program in java where i have to enter three
> different numbers, and it will output the largest number. So for
[quoted text clipped - 42 lines]
> }
> }
You are initializing prevNum to zero. So with all negative inputs, it is the
largest number in your test for the largest number. For this to work for all
integers, you need to initialize prevNum to the most negative integer.
w00 - 22 Nov 2006 09:03 GMT
Oh yeah, you're right. It works now. Thanks for your help :)
Hendrik Maryns - 22 Nov 2006 09:02 GMT
w00 schreef:
> Hello, i have to write a program in java where i have to enter three
> different numbers, and it will output the largest number. So for
[quoted text clipped - 23 lines]
> int intNum;
> int prevNum=0;
Here you initiate the previous number to 0.
> int output=0;
>
> for(int i=0; i<3; i++)
> {
<snip>
> if(prevNum < intNum)
> {
> prevNum = intNum;
> }
And here you set the previous number to the current number if it is
smaller. Now think what would happen if all intNums are negative.
<snip>
Maybe you should choose a better number to initiate prevNum with. (Some
static number in Integer comes to mind.)
HTH, H.
- --
Hendrik Maryns
http://tcl.sfs.uni-tuebingen.de/~hendrik/
==================
http://aouw.org
Ask smart questions, get good answers:
http://www.catb.org/~esr/faqs/smart-questions.html
Lew - 27 Nov 2006 13:56 GMT
> Maybe you should choose a better number to initiate prevNum with. (Some
> static number in Integer comes to mind.)
Or you could use element [0] of the array.
- Lew
Daniel Pitts - 22 Nov 2006 18:02 GMT
> Hello, i have to write a program in java where i have to enter three
> different numbers, and it will output the largest number. So for
[quoted text clipped - 42 lines]
> }
> }
// FindMax.java
import java.util.*;
public class FindMax {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("Usage: java FindMax [number] [number]
[number...]");
}
String max = Collections.max(Arrays.asList(args), new
Comparator<String>() {
public int compare(String a, String b) {
return
Integer.valueOf(a).compareTo(Integer.valueOf(b));
}
});
System.out.println("The largest number is: " + max);
}
}
// End of FindMax.java
javac FindMax.java
java FindMax 10 -10 42 -301 4213 4444