嵌套的If-else语句可能无法正常工作
Nested if-else statement not working probably
我需要对该程序进行一些帮助。当人数大于房间中允许的最大人数时,最后一个声明不会打印。我不确定我是做错了什么还是错过了重要的项目。我认为我不需要根据我使用的文本中的最后一个陈述中包括布尔语表达请协助。感谢您的帮助
//Write a program that determines whether a meeting room is in violation of fire law regulations regarding the maximum room capacity.
//The program will read in the maximum room capacity and the number of people to attend the meeting. If the number of people is less than
//or equal to the maximum room capacity, the program announces that it is legal to hold the meeting and tells how many additional people
//may legally attend. If the number of people exceeds the maximum room capacity, the program announces that the meeting cannot be held as
//planned due to fire regulations and tells how many people must be excluded in order to meet the fire regulations.
#include <iostream>
using namespace std;
int main()
{
//variable declaration
int numberOfPeople, maxRoomCapacity, morePeople, lessPeople;
//program ask user of input
cout << "Enter the number of people to attend the meeting: ";
cin >> numberOfPeople;
cout << "What is the room capacity: ";
cin >> maxRoomCapacity;
//formula to calculate the number of people that meets fire regulation
morePeople = maxRoomCapacity - numberOfPeople;
lessPeople = numberOfPeople - maxRoomCapacity;
//if-else statement to determine if fire regulation is met
if (numberOfPeople < maxRoomCapacity)
{
cout << "It is legal to hold the meeting in the room, plus " << morePeople
<< " additional people may legally attend the meeting." << endl;
}
else if (maxRoomCapacity = numberOfPeople)
{
cout << "It is legal to hold the meeting in the room, no additional person can be allowed." << endl;
}
else
{
cout << "This meeting cannot be held as planned due to fire regulations. "
<< lessPeople << " people must be excluded in order to meet the fire regulations." << endl;
}
system("pause");
return 0;
}
在您的其他语句中,而不是比较两个变量,而是将numberOfPeople
分配给maxRoomCapacity
。作业评估为true,导致该IF-ELSE的主体执行,从而导致程序的流程跳过else
语句。
问题在这里:
else if (maxRoomCapacity = numberOfPeople)
将其更改为:
else if (maxRoomCapacity == numberOfPeople)
注意:
-
=
是一个分配运算符 -
==
是一个比较操作员
使用警告(例如,GCC的-Wall
)编译,您应该得到:
prog.cc: In function 'int main()':
prog.cc:26:26: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
else if (maxRoomCapacity = numberOfPeople)
~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
相关文章:
- QSqlquery prepare()和bindvalue()不工作
- 导入库可以跨dll版本工作吗
- 以螺旋方式打印矩阵的程序.(工作不好)
- 对象指针在c++中是如何工作的
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++为线程工作动态地分割例程
- 为什么我的 std::ref 无法按预期工作?
- 布尔比较运算符是如何在C++中工作的
- SampleConsensusPrerejective(ext.RANSAC)是如何真正工作的
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- <<操作员在下面的行中工作
- 有人能解释一下为什么下界是这样工作的吗C++的
- ExtractIconEx:可以工作,但偶尔会崩溃
- C++中的memset函数工作不正常
- 当我在第一个循环中使用"auto"时,它工作正常,但是使用"int"它会给出错误,为什么?
- 为什么STD ::计数将常数传递给Lambda,而不是在弦上工作时而不是字符
- C++程序已停止工作-求解常微分方程