CodingForums.com

CodingForums.com (http://www.codingforums.com/index.php)
-   Java and JSP (http://www.codingforums.com/forumdisplay.php?f=54)
-   -   Find 2nd smallest integer in array || I have the method to find 1st :D but not 2nd :c (http://www.codingforums.com/showthread.php?t=209383)

Jukemode 11-16-2010 09:06 AM

Find 2nd smallest integer in array || I have the method to find 1st :D but not 2nd :c
 
Hey everyone. I'm pretty new to coding. Here I need to write a method to find the second smallest integer in a given array. What I have managed to put together is a method to find the smallest integer.

I'm thinking I need another for loop to test my 'low' variable to all the integers in the array again, thus finding the next lowest integer. I can put it into words as to what I want, but I have trouble actually coding it. Any words of advice, suggestions or corrections would be awesome. Also, I'd like to figure it myself, so no doing it for me!

take a look...

Code:

    public static void main(String[] args) {

        int array[] = {7, 9, 6, 8, 13};

        int low = 9999999;

        for (int counter = 0; counter < array.length; counter++) {

            if (low > array[counter]) {
                low = array[counter];
                counter++;
            }
        }
            System.out.println(array[low]);
    }


Jukemode 11-16-2010 10:47 AM

K, after a little work, I kinda scrapped my first plan and restarted. But I posted my results. I threw in another for loop, but also used if-else statements to store minimum and second lowest values. Looks pretty good, and runs fine. Any suggestions as what I could improve would be great. Thanks.
;)


Code:

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner k = new Scanner(System.in);
        int array[] = new int[5];

        System.out.println("Enter your 5 digits, separated by spaces:");

        for (int i = 0; i < 5; i++) {
            array[i] = k.nextInt();
                if(array.length != 5) {
            System.out.println("Error");
            System.out.println("Please try again.");
            }
        }

        int min = 0;
        int second = 0;

        if (array[0] < array[1]) {
            min = array[0];
            second = array[1];
        } else {
            min = array[1];
            second = array[0];
        }

        for (int counter = 2; counter < 5; counter++) {

            if (array[counter] <= min) {
                second = min;
                min = array[counter];
            } else {
                if (array[counter] < second) {
                    second = array[counter];
            }
        }
    }
        System.out.println("The second smallest number is " + second);
    }
}



All times are GMT +1. The time now is 11:00 PM.

Powered by vBulletin®
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.