Java - Ordenar numeros con IF

   
Vista:

Ordenar numeros con IF

Publicado por Dany josedaniel.v.solis@hotmail.com (9 intervenciones) el 12/09/2017 04:58:02
Hola a todos, estoy tratando de adaptar este código pero no me queda del todo bien, necesito ordenar 5 números de forma descendente, los numero son ingresados por el usuario de forma aleatoria.

El programa me ordena los números bien el mayor y los menores pero tengo problemas cuando ingreso dos valores iguales me desordena los numeros.
Ejemplo ingreso los valores:25, 6, 7, 25, 8 me debería de dar: 25, 25, 8, 7, 6 pero no me lo esta haciendo otro ejemplo si ingreso:
99, 188, 44, 3, 1001 deberia de mostrarme 1001, 188, 99, 44, 3 pero me da 1001, 188, 44, 3, 3 de donde saca el otro 3 me desaparece el numero 9 cabe mencionar que solo necesito hacerlo con IF o IF Else les comparto el código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
public class MultiplesIf {
    public static void main(String[] args){
                int num1,num2,num3,num4,num5;
 
		int a, b, c, d, e;
 
		System.out.println("Ingrese 5 numeros a continuación: ");
		Scanner type = new Scanner(System.in);
 
		System.out.println("Ingrese el valor de n1: ");
		num1 = type.nextInt();
		System.out.println("Ingrese el valor de n2: ");
		num2 = type.nextInt();
		System.out.println("Ingrese el valor de n3: ");
		num3 = type.nextInt();
		System.out.println("Ingrese el valor de n4: ");
		num4 = type.nextInt();
		System.out.println("Ingrese el valor de n5: ");
		num5 = type.nextInt();
 
		// Asigno los numeros introducidos a 5 variables diferentes
 
		a = num1;
		b = num2;
		c = num3;
		d = num4;
		e = num5;
 
		// Comparamos el valor de la var 1 vs las demas
 
		if (num1 > num2 && num1 > num3 && num1 > num4 && num1 > num5)
			a = num1;
		if (num1 < num2 && num1 > num3 && num1 > num4 && num1 > num5)
			b = num1;
		if (num1 < num2 && num1 < num3 && num1 > num4 && num1 > num5)
			c = num1;
		if (num1 < num2 && num1 < num3 && num1 < num4 && num1 > num5)
			d = num1;
		if (num1 < num2 && num1 < num3 && num1 < num4 && num1 < num5)
			e = num1;
 
		// Comparamos el valor de la var 2 vs las demas
 
		if (num2 > num1 && num2 > num3 && num2 > num4 && num2 > num5)
			a = num2;
		if (num2 < num1 && num2 > num3 && num2 > num4 && num2 > num5)
			b = num2;
		if (num2 < num1 && num2 < num3 && num2 > num4 && num2 > num5)
			c = num2;
		if (num2 < num1 && num2 < num3 && num2 < num4 && num2 > num5)
			d = num2;
		if (num2 < num1 && num2 < num3 && num2 < num4 && num2 < num5)
			e = num2;
 
		// Comparamos el valor de la var 3 vs las demas
 
		if (num3 > num2 && num3 > num1 && num3 > num4 && num3 > num5)
			a = num3;
		if (num3 < num2 && num3 > num1 && num3 > num4 && num3 > num5)
			b = num3;
		if (num3 < num2 && num3 < num1 && num3 > num4 && num3 > num5)
			c = num3;
		if (num3 < num2 && num3 < num1 && num3 < num4 && num3 > num5)
			d = num3;
		if (num3 < num2 && num3 < num1 && num3 < num4 && num3 < num5)
			e = num3;
 
		// Comparamos el valor de la var 4 vs las demas
 
		if (num4 > num1 && num4 > num2 && num4 > num3 && num4 > num5)
			a = num4;
		if (num4 < num1 && num4 > num2 && num4 > num3 && num4 > num5)
			b = num4;
		if (num4 < num1 && num4 < num2 && num4 > num3 && num4 > num5)
			c = num4;
		if (num4 < num1 && num4 < num2 && num4 < num3 && num4 > num5)
			d = num4;
		if (num4 < num1 && num4 < num2 && num4 < num3 && num4 < num5)
			e = num4;
 
		//Comparamos el valor de la var 5 vs las demas
 
		if (num5 > num1 && num5 > num2 && num5 > num3 && num5 > num4)
			a = num5;
		if (num5 < num1 && num5 > num2 && num5 > num3 && num5 > num4)
			b = num5;
		if (num5 < num1 && num5 < num2 && num5 > num3 && num5 > num4)
			c = num5;
		if (num5 < num1 && num5 < num2 && num5 < num3 && num5 > num4)
			d = num5;
		if (num5 < num1 && num5 < num2 && num5 < num3 && num5 < num4)
			e = num5;
 
		System.out.print("El orden de mayor a menor es el siguiente: " + " "
				+ a + " " + b + " " + c + " " + d + " " + e);
}
 
}

Saludos

DS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ordenar numeros con IF

Publicado por Thanatos (91 intervenciones) el 12/09/2017 19:24:08
No sigue la misma idea de tu código, pero de esta forma se puede notar el patrón que siguen las instrucciones para ordenar los números:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import java.util.Scanner;
 
class MultiplesIf {
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num1, num2, num3, num4, num5;
 
        System.out.println("Ingrese 5 numeros a continuación:");
 
        System.out.print("Ingrese el valor de N1: ");
        num1 = sc.nextInt();
 
        System.out.print("Ingrese el valor de N2: ");
        num2 = sc.nextInt();
 
        System.out.print("Ingrese el valor de N3: ");
        num3 = sc.nextInt();
 
        System.out.print("Ingrese el valor de N4: ");
        num4 = sc.nextInt();
 
        System.out.print("Ingrese el valor de N5: ");
        num5 = sc.nextInt();
 
        sc.close();
 
        if (num1 < num2) { num1 += num2;  num2 = num1 - num2;  num1 -= num2; }
        if (num1 < num3) { num1 += num3;  num3 = num1 - num3;  num1 -= num3; }
        if (num1 < num4) { num1 += num4;  num4 = num1 - num4;  num1 -= num4; }
        if (num1 < num5) { num1 += num5;  num5 = num1 - num5;  num1 -= num5; }
 
        if (num2 < num3) { num2 += num3;  num3 = num2 - num3;  num2 -= num3; }
        if (num2 < num4) { num2 += num4;  num4 = num2 - num4;  num2 -= num4; }
        if (num2 < num5) { num2 += num5;  num5 = num2 - num5;  num2 -= num5; }
 
        if (num3 < num4) { num3 += num4;  num4 = num3 - num4;  num3 -= num4; }
        if (num3 < num5) { num3 += num5;  num5 = num3 - num5;  num3 -= num5; }
 
        if (num4 < num5) { num4 += num5;  num5 = num4 - num5;  num4 -= num5; }
 
        System.out.printf("\n%d %d %d %d %d", num1, num2, num3, num4, num5);
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Ordenar numeros con IF

Publicado por Dany (9 intervenciones) el 12/09/2017 21:43:39
Funciona correctamente, muchas gracias por el apoyo y con muchos menos If eliminando variables.

Gracias, se puede cerrar el tema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ordenar numeros con IF

Publicado por Jordi jordidalmaucolell2@hotmail.com (127 intervenciones) el 13/09/2017 10:50:20
Te aviso de que tu código puede reducirse a 20 líneas si usas arreglos y while.
Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Ordenar numeros con IF

Publicado por Costero (27 intervenciones) el 14/09/2017 20:45:55
Sin IF, es mas simple.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class MultiplesIf {
    public static void main(String[] args){
 
        int [] arr = new int[5];
 
        Scanner sc = new Scanner(System.in);
 
        System.out.println("Ingrese 5 numeros a continuación:");
 
        for(int i=0; i < arr.length; ++i) {
            System.out.printf("Ingrese el valor de N%s: ", i+1);
            arr[i] = sc.nextInt();
        }
 
        sc.close();
 
        Arrays.sort(arr);
        System.out.println("Sorted values ...");
        for(int i = arr.length - 1; i > -1; i--) {
            System.out.print(arr[i] + ", ");
        }
        System.out.println();
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Ordenar numeros con IF

Publicado por Dany josedaniel.v.solis@hotmail.com (9 intervenciones) el 15/09/2017 05:41:06
Es correcto lo que mencionan, pero como comentaba al principio era necesario realizarlo solo con IF, estamos empezando con los basicos en Java (If, For, While, Do while) posteriormente veremos en clase los Array.

De cualquier forma muchas gracias ya probé su código y es increíble todas las lineas que se reduce el código.

Saludos

DS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar