Итак, я собираю эту программу, которая принимает 4 значения за каждый месяц года. Единственная проблема, с которой я столкнулась, заключается в том, что после того, как я ввел последний ввод за декабрь, цикл продолжается и начинается до января. Что я забываю?Цикл for продолжает цикл
#include <iostream>
#include <iomanip>
using namespace std;
enum Month {January,February,March,April,May,June,July,August,September,October,November,December };
void displayMonthName (Month);
struct Airport
{
int numLanded;
int numDeparted;
int mostLanded;
int leastLanded;
};
int main()
{
int count;
const int MAX = 12;
double total = 0.0;
double average;
Airport year[MAX];
Month months;
for (count = 0 ; count < MAX ; count++)
{
for (months = January; months <= December ; months= static_cast <Month>(months + 1))
{
cout<< "Enter the number of planes landed in ";
displayMonthName(months);
cout<<"\t";
cin>>year[count].numLanded;
cout<< "Enter the number of planes that landed in ";
displayMonthName(months);
cout<<"\t";
cin>>year[count].numDeparted;
cout<< "Enter the greatest number of planes that landed on a single day in ";
displayMonthName(months);
cout<<"\t";
cin>>year[count].mostLanded;
cout<< "Enter the least number of planes that landed on a single day in ";
displayMonthName(months);
cout<<"\t";
cin>>year[count].leastLanded;
cout << endl;
}
}
Вот функция void, но я уверен, что это не имеет к этому никакого отношения.
void displayMonthName(Month m)
{
switch (m)
{
case January : cout<< "January";
break;
case February : cout<< "February";
break;
case March : cout<< "March";
break;
case April : cout<< "April";
break;
case May : cout<< "May";
break;
case June : cout<< "June";
break;
case July : cout<< "July";
break;
case August : cout<< "August";
break;
case September : cout<< "September";
break;
case October : cout<< "October";
break;
case November : cout<< "November";
break;
case December : cout<< "December";
}
}
Пробовал. Это только заставило его полностью игнорировать декабрь и продолжить с января. –
Возможный дубликат [Что произойдет, если вы статируете \ _cast недопустимым значением для класса enum?] (Http://stackoverflow.com/questions/18195312/what-happens-if-you-static-cast-invalid-value-to- enum-class) – LogicStuff
Да, но кроме того, вы полностью забываете, что только что писали. 'int x = 1;' - почему 'x' равно' 1'? – LogicStuff