-1

This code has to enter 5 integers and then display them in ascending and descending orders without using arrays. But it gives me only the biggest number. How can i do it without arrays??

package assignment;

import javax.swing.JOptionPane;

public class q1 {

    public static void main(String[] args) {

        String a = JOptionPane.showInputDialog(null, "Please Enter a number", "Input", JOptionPane.QUESTION_MESSAGE);
        int number1 = Integer.parseInt(a);
        String b = JOptionPane.showInputDialog(null, "Please Enter a number", "Input", JOptionPane.QUESTION_MESSAGE);
        int number2 = Integer.parseInt(b);
        String c = JOptionPane.showInputDialog(null, "Please Enter a number", "Input", JOptionPane.QUESTION_MESSAGE);
        int number3 = Integer.parseInt(c);
        String d = JOptionPane.showInputDialog(null, "Please Enter a number", "Input", JOptionPane.QUESTION_MESSAGE);
        int number4 = Integer.parseInt(d);
        String e = JOptionPane.showInputDialog(null, "Please Enter a number", "Input", JOptionPane.QUESTION_MESSAGE);
        int number5 = Integer.parseInt(e);

        if (number1 > number2 && number1 > number3 && number1 > number4 && number1 > number5) {
            System.out.print(number1 + ",");
        } else if (number2 > number1 && number2 > number3 && number2 > number4 && number2 > number5) {
            System.out.print(number2 + ",");
        } else if (number3 > number1 && number3 > number2 && number3 > number4 && number3 > number5) {
            System.out.print(number3 + ",");
        } else if (number4 > number1 && number4 > number2 && number4 > number3 && number4 > number5) {
            System.out.print(number4 + ",");
        } else if (number5 > number1 && number5 > number2 && number5 > number3 && number5 > number4) {
            System.out.print(number5 + ",");
        }

    }
}
beshr
  • 263
  • 4
  • 5
  • 10

3 Answers3

3

Oddly I couldn't really find much on sorting outside of arrays and lists so I will assist you.

Code:

  int temp;

for (int count = 0; count < 4; count++)
{
    if ( number2 < number1)
    {
       temp = number1;
       number1 = number2;
       number2 = temp;
    }

    if ( number3 < number2)
    {
       temp = number2;
       number2 = number3;
       number3 = temp;
    }

    if ( number4 < number3)
    {
       temp = number3;
       number3 = number4;
       number4 = temp;
    }

    if ( number5 < number4)
    {
       temp = number4;
       number4 = number5;
       number5 = temp;
    }
}

System.out.println( number1 + " " + number2 + " " + number3 + " " + number4 + " " + number5);
System.out.println( number5 + " " + number4 + " " + number3 + " " + number2 + " " + number1);

Sorting will get easier as you learn some of the algorithms and how they work. Until then, I hope this helps.

The basic idea is to check each pair and swap the values. You will need to do this multiple times in order to get the last value to the beginning of your list of values.

MarGar
  • 465
  • 5
  • 12
2

Easy. It can be done in 120 lines.

if(number1>=number2 && number2>=number3 && number3>=number4 && number4>=number5)
    System.out.print(number1 + "," + number2 + "," + number3 + "," + number4 + "," + number5);
else if (number1>=number2 && number2>=number3 && number3>=number5 && number5>=number4)
    System.out.print(number1 + "," + number2 + "," + number3 + "," + number5 + "," + number4);
else if ...

Just do this 118 more times for every permutation of 5P5 :P

Brute force to the max.

Enjoy doing this with 10 integers.

dberm22
  • 3,187
  • 1
  • 31
  • 46
1

I don't think the logic you are using is correct.

I suppose the code for arranging 5 int variables in decending order will be

Assume that the variables are initialized and assigned

int max;
int temp;
for(int i=1 ; i<=4 ; i++)
{
    if(i==1)
    {
        max=n1;
    }
    if(i==2)
    {
        max=n2;
    }
    if(i==3)
    {
        max=n3;
    }
    if(i==4)
    {
        max=n4;
    }

    for(int j=i+1 ; j<=5 ; j++)
    {
        if(j<=2)
        {
            if(n2>max)
            {
                temp=n2;
                n2=max;
                max=temp;
            }
        }

        if(j<=3)
        {
            if(n3>max)
            {
                temp=n3;
                n3=max;
                max=temp;
            }
        }

        if(j<=4)
        {
            if(n4>max)
            {
                temp=n4;
                n4=max;
                max=temp;
            }
        }

        if(j<=5)
        {
            if(n5>max)
            {
                temp=n5;
                n5=max;
                max=temp;
            }
        }   

    }
    if(i==1)
    {
        n1=max;
    }
    if(i==2)
    {
        n2=max;
    }
    if(i==3)
    {
        n3=max;
    }
    if(i==4)
    {
        n4=max;
    }
}
System.out.print(n1 + "," + n2 + "," + n3 + "," + n4 + "," + n5); 

Well..I am basically using Selection Sort here.

Sunil Chawla
  • 351
  • 3
  • 6