Solución a la Tarea 1: Unidades británicas de volumen
Hay al menos dos formas de resolver esta tarea. En la primera se puede
calcular el número de onzas que equivale a todos los
volúmenes para luego convertirlo poco a poco en las demás
unidades de volumen. En la segunda forma, se van convirtiendo las
unidades de volumen una por una.
#include
<stdio.h>
int main(void)
{
int g1, c1, p1, t1, o1;
int g2, c2, p2, t2, o2;
scanf("%d%d%d%d%d", &g1, &c1, &p1, &t1, &o1);
o2 = o1%8;
t1 = t1 + o1/8;
t2 = t1%2;
p1 = p1 + t1/2;
p2 = p1%2;
c1 = c1 + p1/2;
c2 = c1%4;
g2 = g1 + c1/4;
printf("%d %d %d %d %d\n", g2, c2, p2, t2, o2);
return 0;
}
Los valores de entrada y salida empleados para la evaluación
fueron los siguientes:
Entrada
Salida
31 41 59 26
57 50 2 1 1 1
1 2 3 4
5 2 0
1 0 5
123 456 789 890 567 395 2 1 0 7
12 34 56 78 90 33 0 0 1 2
10 29 38 47 56 25 1 1 0 0
0 0 0 0
8 0 0
0 1 0
0 0 0 2
0 0 0
1 0 0
0 0 2 0
0 0 1
0 0 0
0 4 0 0
0 1 0
0 0 0
0 0 0 0
0 0 0
0 0 0
Para probar su tarea en UNIX, escriban la instrucción gcc galonzNN.c -o galonz para
compilar su programa, y la instrucción ./galonz para correrlo.
Algunos errores comúnes fueron: (a) Leer int como long o
viceversa. (b) Imprimir letreros de cualquier tipo e incluso usar
conio.h, lo cual estaba explícitamente prohibido. (c) Todo tipo
de conversiones mal hechas.
(d) Aunque no es un error, lo mejor era usar enteros para las
operaciones, pues los cálculos con flotantes son inexactos.
Además, les recuerdo que
sólo deben enviar el archivo .c y que éste debe tener el
nombre correcto.