
/*************************************************
 *                                               *
 * EP #1 - MAC 115: Introdução à Computação (IQ) *
 *                                               *
 * Félix Almeida <felix@linux.ime.usp.br>        *
 *                                               *
 *                                    30/03/2000 *
 *************************************************/

#include <stdio.h>

int main(void) {

	int volume, resto, contador, quantidade[5], pipeta[5] = {50, 25, 10, 5, 1};
	/* volume    : Guarda o volume digitado pelo usuário.
	   resto     : Guarda o restante do volume que ainda precisa ser
	               analisado.
	   contador  : Contador genérico usado nos laços de cálculo e de
	               impressão dos dados.
	   quantidade: Guarda as quantidades necessárias de cada pipeta.
	   pipeta    : Guarda as capacidades em ml de cada pipeta.
	 */

	/* Laço principal do programa. */
	do {

		/* Solicita e armazena o volume fornecido pelo usuário. */
		printf("Entre com o volume em ml (0 para sair): ");
		scanf("%d", &volume);

		/* Verifica se o volume fornecido é diferente de zero. */
		if (volume) {

			/* Salva o valor fornecido do volume. */
			resto = volume;

			/* Laço que calcula as quant. necessárias de cada
			   pipeta. */
			for (contador = 0; contador < 5; contador++) {
				quantidade[contador] = resto / pipeta[contador];
				resto %= pipeta[contador];
			}

			printf("O volume de %d ml pode ser obtido atraves de:\n", volume);

			/* Laço que imprime as quantidades necessárias de cada
			   pipeta. */
			for (contador = 0; contador < 5; contador++)

				/* Teste para que não sejam mostradas quants.
				   nulas de pipetas. */
				switch(quantidade[contador]) {
					case  0: break;
					case  1: printf("%2d pipetagem  de %2d ml\n", quantidade[contador], pipeta[contador]);
						 break;
					default: printf("%2d pipetagens de %2d ml\n", quantidade[contador], pipeta[contador]);
				}

			printf("\n");
		}

	/* Teste do laço principal (sai se o volume fornecido for zero). */
	} while (volume);

	/* Devolve zero para o sistema operacional ficar feliz. ;-) */
	return 0;

} /* main() */

