Programa em C que diz quantos dias o mês possui

Programa em C que recebe o mês e informa quantos dias ele possui.Vamos criar agora um programa que pede o mês ao usuário, e retorna quantos dias esse mês possui.
Vamos resolver usando apenas SWITCH e cases acumulados.

Exercício:
Crie um programa em C que receba um inteiro, de 1 até 12, representando os meses do ano e retorne o número de dias do mês.

Use switch e não use break. 
Use acúmulo de case e suponha que fevereiro tenha sempre 28 dias.


Como obter certificação de programação em C

Como programar: aplicativo que diz quantos dias um mês possui em C

Inicialmente, a variável 'dias' é declarada como tendo 31 dias.

Caso seja o mês 4, 6, 9 ou 11, é subtraído 1 da variável 'dias'  e o programa informa que esses meses possuem 30 dias.

Caso seja o mês 2, é subtraído 2  de 'dias', ficando 28 dias para o mês de fevereiro.

Caso não seja nenhum desses meses, não cai no switch, então continua com 31 dias (que são os meses 1, 3, 5, 7, 8, 10 e 12).

Assim, nosso código C fica:

#include <stdio.h>

int main()
{
        int mes,
            dias=31;

        printf("Digite o mes [1-12]: ");
        scanf("%d", &mes);

        if(mes>12 || mes<1)
            printf("Mes invalido");
        else
            switch( mes )
                {
                    // fevereiro: subtraímos 2 dias aqui e 1 dia no próximo case
                    case 2:
                        dias -=2;

                    //meses que possuem 30 dias: só subtraímos 1 dia
                    case 4: case 6: case 9: case 11:
                        dias--;

                }

        printf("O mes %d possui %d dias", mes, dias);

}




4 comentários:

Douglas disse...

Olá!

Antes de mais nada, gostaria de parabenizar pelo excelente trabalho que estão fazendo.

Fiquei com uma dúvida, por o C não subtraiu a variável dia duas vezes?
Como o C se achou sem o break?

Agradeço desde já.

Joao Carlos Agostini disse...

Olá
Fiquei surpreso com a solução do exercício. Não ficou claro na aula que podia por uma única instrução para vários cases em cascata.
Entendi que cada case seria executado sem o break;, mas não que podia juntar todos os cases como um só!

Roberto GMJ disse...

To gostando muito do curso, Parabens e Obrigado.

Esse exercício eu o modifiquei porque achei mais interessante e fica a dica pra quem quiser tentar ao inves de somente dizer quantos dias tem o mes, mandar ele calcular qual o numero do dia durante o ano. 10/02 somaria 31 dias de janeiro + 10 de fevereiro chegando 10/02 sendo o 41º dia do ano e por ae vai.

monia tavares disse...

putz, o ultimo exercicio me surpreendeu, a lógica super limpa e simples kkkkkkkk


maravilhoso esse trabalho de c, estou reforçando bastante o que tenho visto na faculdade de computação.

Gostou desse tutorial de C?
Sabia que o acervo do portal C Progressivo é o mesmo, ou maior que, de um livro ou curso presencial?
E o melhor: totalmente gratuito.

Mas para nosso projeto se manter é preciso divulgação.
Para isso, basta curtir nossa página no Facebook e/ou clicar no botão +1 do Google.
Contamos e precisamos de seu apoio.