【发布时间】:2015-12-26 13:33:56
【问题描述】:
要求的任务是计算如果星期一开始露营,可以连续露营的天数。 露营可以在晴天 (1) 或阴天 (2) 进行,但不能在雨天 (3) 进行。此外,它不应该太冷或太热。一天适合露营的3个条件是:
温度至少为 24 度。
温度最高为 30。
天气晴朗或多云。
这是我的代码(由于需求,main函数不能修改,其他两个函数应该存在)
bool isSuitableForCamping(int minTemp, int maxTemp, int weather)
{
if (minTemp >= 24 && maxTemp <= 30 && (weather == 1 || weather == 2))
{return true;}
else
{return false;}
}
int getMaxCampingDaysIfStartOnMonday(
int mondayMinTemp, int mondayMaxTemp, int mondayWeather,
int tuesdayMinTemp, int tuesdayMaxTemp, int tuesdayWeather,
int wednesdayMinTemp, int wednesdayMaxTemp, int wednesdayWeather,
int thursdayMinTemp, int thursdayMaxTemp, int thursdayWeather,
int fridayMinTemp, int fridayMaxTemp, int fridayWeather,
int saturdayMinTemp, int saturdayMaxTemp, int saturdayWeather,
int sundayMinTemp, int sundayMaxTemp, int sundayWeather
)
{
int dayCount = 0;
bool dayList[7];
dayList[0] = isSuitableForCamping(mondayMinTemp, mondayMaxTemp, mondayWeather);
dayList[2] = isSuitableForCamping(tuesdayMinTemp, tuesdayMaxTemp, tuesdayWeather);
dayList[3] = isSuitableForCamping(wednesdayMinTemp, wednesdayMaxTemp, wednesdayWeather);
dayList[4] = isSuitableForCamping(thursdayMinTemp, thursdayMaxTemp, thursdayWeather);
dayList[5] = isSuitableForCamping(fridayMinTemp, fridayMaxTemp,fridayWeather);
dayList[6] = isSuitableForCamping(saturdayMinTemp, saturdayMaxTemp, saturdayWeather);
dayList[7] = isSuitableForCamping(sundayMinTemp, sundayMaxTemp, sundayWeather);
for (int i = 0; i < 7; i++)
{
if (dayList[i] == true )
{
dayCount++;
}
else
break;
}
return dayCount;
}
int main()
{
//Get Monday's weather forecast data
int mondayMinTemp, mondayMaxTemp, mondayWeather;
cout << "Monday's minimum temperature: ";
cin >> mondayMinTemp;
cout << "Monday's maximum temperature: ";
cin >> mondayMaxTemp;
cout << "Monday's weather (1:Sunny 2:Cloudy 3:Rainy): ";
cin >> mondayWeather;
cout << endl;
.
.
.
//Get Sunday's weather forecast data
int sundayMinTemp, sundayMaxTemp, sundayWeather;
cout << "Sunday's minimum temperature: ";
cin >> sundayMinTemp;
cout << "Sunday's maximum temperature: ";
cin >> sundayMaxTemp;
cout << "Sunday's weather (1:Sunny 2:Cloudy 3:Rainy): ";
cin >> sundayWeather;
cout << endl;
cout << "If you start camping on Monday, you would be able to camp for "
<< getMaxCampingDaysIfStartOnMonday( mondayMinTemp, mondayMaxTemp, mondayWeather,
tuesdayMinTemp, tuesdayMaxTemp, tuesdayWeather,
wednesdayMinTemp, wednesdayMaxTemp, wednesdayWeather,
thursdayMinTemp, thursdayMaxTemp, thursdayWeather,
fridayMinTemp, fridayMaxTemp, fridayWeather,
saturdayMinTemp, saturdayMaxTemp, saturdayWeather,
sundayMinTemp, sundayMaxTemp, sundayWeather )
<< " day(s) at most!" << endl;
return 0;
}
我尝试输入这些值,以便前三天可以用于露营。然而,它总是最多返回我 1 天。是否可以数数。以这种方式在数组中的真值?
【问题讨论】: