[ create a new paste ] login | about

Link: http://codepad.org/hszUXe92    [ raw code | output | fork ]

fernandobasso - C, pasted on Oct 5:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

/* To unfold, type zR in vim. */
/* getchar() on line 22 and 23. */

int main(void) {

    /* Variable definitions. {{{ */
    char nome[30], sexo;
    int idade;
    float altura, peso, peso_ideal; /* }}} */

    /* Dados do usuário {{{ */
    printf("Qual o seu nome?\n");
    scanf("%s", nome);
    printf("%s.\n", nome );

    printf("Qual é o sexo (M,F)?\n");
    /* NOTE: needed an extra getchar() here. */
    getchar();
    sexo = getchar();
    /* printf("O sexo é %c.\n", sexo); */

    /* Não esquecer o operador de endereço, ou vai dar 
     * um erro de 'Segmentation fault'. */
    printf("Qual a sua altura?\n");
    scanf("%f", &altura);

    printf("Sua idade?\n");
    scanf("%d", &idade); /* }}} */

    switch (sexo) { /* {{{ */

        case 'M': case 'm': /* {{{ */
            if (altura > 1.70) {
                if (idade <= 20) {
                    peso_ideal = (72.7 * altura) - 58;
                }
                else if (idade > 21 && idade <= 39) {
                    peso_ideal = (72.7 * altura) - 53;
                }
                else {
                    /* Aqui, a idade já vai ser obrigatoriamente 
                     * maior que 40. */
                    peso_ideal = (72.7 * altura) - 45;
                }
            }
            break; /* case m/M ends here }}} */

        case 'F': case 'f': /* {{{ */
            if (altura > 1.50) {
                /* Segundo o exercício proposto, não 
                 * importa a idade aqui. */
                peso_ideal = (62.1 * altura) - 44.7;
            } 
            else {
                /* Se a altura não é maior que 1.50, será 
                 * obrigatoriamente < ou = a 1.50. * */
                if (idade >= 35) {
                    peso_ideal = (62.1 * altura) - 45;
                }
                else {
                    /* Se idade não é = ou > que 35, será
                     * obrigatoriamente < que 35. */
                    peso_ideal = (62.1 * altura) - 49;
                }
            }

        break; /* case 'F/f' ends here }}} */
    
        default: /* {{{ */
            printf("Sei lá\n");
            break; /* }}} */
    } /* switch 'sexo' ends here }}} */

    printf("O seu peso ideal seria %.2f.\n", peso_ideal);

    return 0;
}
/*
 * vim:foldmethod=marker foldmarker={{{,}}}:
 */


Output:
1
2
3
4
5
6
7
Qual o seu nome?
@�P�t�.
Qual é o sexo (M,F)?
Qual a sua altura?
Sua idade?
Sei lá
O seu peso ideal seria 2.02.


Create a new paste based on this one


Comments: