C/C++ Solving C++ Logical Ops 2: Print "Special Number

  • Thread starter Thread starter ineedhelpnow
  • Start date Start date
  • Tags Tags
    C++
Click For Summary
The discussion focuses on creating a C++ expression to print "Special number" for specific values of `specialNum` (-99, 0, or 44). A common mistake highlighted is using the assignment operator `=` instead of the equality operator `==`, which leads to incorrect behavior in the condition check. The correct expression should be `(specialNum == -99) || (specialNum == 0) || (specialNum == 44)`. Participants emphasize the importance of distinguishing between these operators to avoid logical errors in code. Overall, attention to detail in syntax is crucial for correct program functionality.
ineedhelpnow
Messages
649
Reaction score
0
Write an expression that prints "Special number" if specialNum is -99, 0, or 44.

Sample program:

Code:
#include <iostream>
using namespace std;

int main() {
   int specialNum = 0;

   specialNum = 17;
   
   if (<STUDENT CODE>) {
      cout << "Special number" << endl;
   }
   else {
      cout << "Not special number" << endl;
   }

   return 0;
}

i thought it would be
Code:
(specialNum == -99) || (specialNum == 0) || (specialNum = 44)
but its not
 
Technology news on Phys.org
ineedhelpnow said:
Write an expression that prints "Special number" if specialNum is -99, 0, or 44.

Sample program:

Code:
#include <iostream>
using namespace std;

int main() {
   int specialNum = 0;

   specialNum = 17;
   
   if (<STUDENT CODE>) {
      cout << "Special number" << endl;
   }
   else {
      cout << "Not special number" << endl;
   }

   return 0;
}

i thought it would be
Code:
(specialNum == -99) || (specialNum == 0) || (specialNum = 44)
but its not

That last condition is an assignment. You want specialNum == 44, because "specialNum = 44" is a statement that means "assign 44 to specialNum, and return that value". Thus it logically becomes true (as 44 is not zero) and you always get "special number" (and if you printed specialNum it would mysteriously always be 44.

Be careful between = and == :)
 
i literally read over that piece of code i wrote like ten times and i didnt even notice that i missed a '='. thanks bacterius!
 
Anthropic announced that an inflection point has been reached where the LLM tools are good enough to help or hinder cybersecurity folks. In the most recent case in September 2025, state hackers used Claude in Agentic mode to break into 30+ high-profile companies, of which 17 or so were actually breached before Anthropic shut it down. They mentioned that Clause hallucinated and told the hackers it was more successful than it was...

Similar threads

  • · Replies 15 ·
Replies
15
Views
4K
Replies
12
Views
3K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 22 ·
Replies
22
Views
3K
  • · Replies 40 ·
2
Replies
40
Views
3K
  • · Replies 6 ·
Replies
6
Views
12K
  • · Replies 23 ·
Replies
23
Views
3K
Replies
3
Views
1K
Replies
12
Views
2K
  • · Replies 13 ·
Replies
13
Views
2K