所需的任务是计算周一露营开始时可以驻扎的连续天数。 露营可以在晴天(1)或多云(2)天进行,但不能在下雨天(3天)进行。另外,它不应该太冷或太热。的3个条件,每天以适合于野营是:将布尔函数传递给数组
温度为至少24
温度为至多30
天气或者是晴天或阴天。
这是我的代码(由于要求,主功能不能被修改并且两个其他功能必须存在)
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天。是否有可能数不?这样的数组中的trues?
对于第一个提示,OP使用的数组与* fixed *提供的代码相反。 – Jarod42
@ Jarod42:谢谢你指出 - 这是一个非常糟糕的家庭作业! –