Dev - C++ - Duda de que esté 100% correcto.

   
Vista:
Imágen de perfil de Martin Larrosa

Duda de que esté 100% correcto.

Publicado por Martin Larrosa martnahuel95@gmail.com (19 intervenciones) el 29/04/2016 05:05:36
Creé un programa que dado tres número indique "El mayor", "El intermedio" y "el menor".
Me gustaría que si encuentran algún bug (no sé cómo definir a que en algún caso no sea correcto el resultado) o si hay alguna forma más sencilla de hacer este mismo código me lo indiquen. Desde ya muchas gracias.
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
#include<stdio.h>
 
	int main(){
		int a,b,c;
		printf("Ingrese un valor para a:");
		scanf("%d",&a);
		printf("Ingrese un valor para b:");
		scanf("%d",&b);
		printf("Ingrese un valor para c:");
		scanf("%d",&c);
 
	if(a>b){
		if(a>c){
			if(b>c){
				printf("%d es el mayor, %d es el intermedio, %d es el menor",a,b,c);
			}else{
				printf("%d es el mayor, %d es el intermedio, %d es el menor",a,c,b);
			}
		}else{
			if(b>c){
				printf("%d es el mayor, %d es el intermedio, %d es el menor",b,c,a);
			}else{
				printf("%d es el mayor, %d es el intermedio, %d es el menor",c,a,b);
			}
		}
	}else{
		if(a>c){
			printf("%d es el mayor, %d es el intermedio, %d es el menor",b,a,c);
		}else{
			if(b>c){
				printf("%d es el mayor, %d es el intermedio, %d es el menor",b,c,a);
			}else{
				printf("%d es el mayor, %d es el intermedio, %d es el menor",c,b,a);
			}
		}
	}
	}
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

Duda de que esté 100% correcto.

Publicado por Thanatos (73 intervenciones) el 29/04/2016 13:37:52
Otra forma de escribir el programa:

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
#include <stdio.h>
 
int main() {
    int a, b, c, aux;
 
    printf("Ingrese un valor para a: ");
	scanf("%d", &a);
	printf("Ingrese un valor para b: ");
	scanf("%d", &b);
	printf("Ingrese un valor para c: ");
	scanf("%d", &c);
 
	if (a > b) {
	    aux = a;
	    a = b;
	    b = aux;
	}
 
	if (b > c) {
	    aux = b;
	    b = c;
	    c = aux;
	}
 
	if (a > b) {
	    aux = a;
	    a = b;
	    b = aux;
	}
 
    printf("\nmenor = %d\nmedio = %d\nmayor = %d", a, b, c);
    return 0;
}

Habría que verificar si dos de los números son iguales, porque un número no debería ocupar dos de las posiciones (menor, medio, mayor) a la vez. También podría darse el caso de que el menor y el mayor sean iguales, lo que significaría que los tres números son iguales. En ambos casos se podría indicar eso en la salida.
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

Duda de que esté 100% correcto.

Publicado por agustin (310 intervenciones) el 29/04/2016 16:59:36
Mejor seria un bucle de ordenación y luego haces lo que quieras como verificar si son iguales y demás.
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