Solución a la Tarea 2: Rectángulos dentro de
rectángulos
Una forma simple de resolver la tarea era simplemente verificando una
por una cual de las cinco posibilidades ocurría. El orden de la
verificación es importante, puesto que a veces de eso depende si
decimos que el primer rectángulo cabe dentro del segundo o
viceversa. Por supuesto, el programa que muestro abajo no es el
más corto posible, pero debiera ser fácil de entender.
#include
<stdio.h>
int main(void)
{
int s, g;
long a, b, c, d;
scanf("%ld%ld%ld%ld", &a, &b, &c, &d);
if ((a <= c) && (b <= d)) {
s = 1;
g = 0;
} else if ((a >= c) && (b >= d)) {
s = 2;
g = 0;
} else if ((a <= d) && (b <= c)) {
s = 1;
g = 1;
} else if ((a >= d) && (b >= c)) {
s = 2;
g = 1;
} else
s = g = 0;
printf("%d %d\n", s, g);
return 0;
}
Los valores de entrada y salida empleados para la evaluación
fueron los siguientes:
Entrada
Salida
1 5 3 7 1 0
1 5 7 3 1 1
7 3 1 5 2 1
7 3 5 1 2 0
1 7 3 5 0 0
4 2 4 6 1 0
2 3 1 3 2 0
2 4 4 6 1 0
2 3 3 1 2 1
2 2 2 2 1 0
Para probar su tarea en UNIX, escriban la instrucción gcc giraloNN.c -o giralo para
compilar su programa, y la instrucción ./giralo para correrlo.
Algunos errores comúnes fueron: (a) Hacer las verificaciones en
algún orden equivocado. (b) No considerar que si los dos
rectángulos son iguales entonces uno cabe dentro del otro. (c)
Similarmente, no considerar que si un lado de cada rectángulo
era igual, entonces uno debía caber dentro del otro.
Además, les recuerdo que
sólo deben enviar el archivo .c y que éste debe tener el
nombre correcto.