Qual dos trechos de programa escritos em C++ indica quantos dias tem em um determinado mês?
1 -
if(mes == 2)
cout << "28 ou 29 dias\n" ;
if (mes == 4 || mes == 6 || mes == 9 || mes = 11)
cout << "mes de 30 dias\n" ;
else
cout << "mes de 31 dias\n";
ou
2 - switch(mes){
case 1,3,5,6,8,10,12: cout << "mes de 31 dias\n" ;
break;
case 4,6,9,11: cout << "mes de 30 dias\n" ;
break;
case 2: cout << "28 ou 29 dias\n" ;
break;
}
ou
3 - switch(mes){
case 1||3||5||6||8||10||12: cout << "mes de 31 dias\n" ;
break;
case 4||6||9||11: cout << "mes de 30 dias\n" ;
break;
case 2: cout << "28 ou 29 dias\n" ;
break;
}
ou
4 - if(mes == 2)
cout << "28 ou 29 dias\n" ;
if (mes == 4 && mes == 6 && mes == 9 && mes = 11)
cout << "mes de 30 dias\n" ;
else
cout << "mes de 31 dias\n";
É melhor fazer com um comando de decisão composto e aninhado. Com o switch seriam feitos muitos testes e haveria a redundância de dados. Para fazer com um if/else você primeiro define quais os meses com 28/29, 30, 31 dias.
#include<iostream>
using namespace std;
int main(){
int mes;
// ENTRADA DO MES
cout<<"\n\tMES: ";
cin>>mes;
// MECANISMO DE VALIDACAO
while(mes < 1 || mes > 12){
cout<<"\n\tMES INVALIDO!\n\n\t";
cout<<"\n\tMES: ";
cin>>mes;
}
// EXIBIÇÃO DA INFORMAÇÃO
if(mes == 2){
cout<<"\n\t28 ou 29 dias\n\n";
}
// Agrupar todos os meses com 30 dias
else if(mes == 4 || mes == 6 || mes == 9 || mes == 11){
cout<<"\n\t30 dias\n\n";
}
// Todos os outros que passaram na validacao e não estão entre 28/29 ou 30 são automaticamente 31 dias.
else{
cout<<"\n\t31 dias\n\n";
}
system("pause");
}
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar