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.