Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / November 2006

Tip: Looking for answers? Try searching our database.

compare biggest negative number

Thread view: 
w00 - 22 Nov 2006 08:35 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
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


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.