Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

IF не принимает условия c++

rgagresdggar Профи (571), закрыт 1 месяц назад
не черз запятую
не через ||
он не хочет работать и всегда выдает первый ответ
что с ним не так, на форумах смотрел там говорят через || точно будет работать
Лучший ответ
Андрей Высший разум (427848) 2 месяца назад
 month == 4 || month == 6 || month == 9 || month == 11 
Через || перечисляются НЕ числа, а операции сравнения.
Остальные ответы
Николай Веселуха Высший разум (360971) 2 месяца назад
 #include  
#include

using namespace std;
using date_t = unsigned short;

bool is_leap(const date_t year) {
if (year % 4) return false;
if (0 == year % 400) return true;
return year % 100;
}

int main() {
system("chcp 1251 > nul");
const set longer{ 1, 3, 5, 7, 8, 10, 12 };
const set ordinary{ 4, 6, 9, 11 };
const short february = 2;
while (true) {
date_t last = 0;
cout << "Введите месяц: ";
date_t month;
cin >> month;
if (longer.contains(month)) last = 31;
else if (ordinary.contains(month)) last = 30;
else if (month == february) {
cout << "Введите год: ";
short year;
cin >> year;
last = !is_leap(year) ? 28 : 29;
}
else cout << "Ошибка!";
if (last) cout << "Последний день месяца: " << last;
cout << endl;
}
system("pause > nul");
}
Похожие вопросы