
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
- Leia este conteúdo no seu computador: Apostila C Progressivo
Como programar: aplicativo que diz quantos dias um mês possui em C
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); }
6 comentários:
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á.
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ó!
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.
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.
Por que a resposta do ultimo exercicio não tem default?
Estou gostando muito do curso!
Bom dia!
Ainda estou aprendendo.
O curso de vcs é ótimo, a lógica dos exercícios resolvidos super simples.
Nesse exercício do Switch quando digito um numero de mês invalido ele aparece a mensagem " mês invalido mês 13 possui 31 dias".Fiquei com duvida no default porque nesse exercício você não colocou?
Obrigado pela atenção.
parabéns pelo curso excente!
Postar um comentário