Example(s):Palindrome, prime, armstrong, "linear search", reverse etc.

Example(s):1575, 1632, 1539 (Only one at a time)

Login

[lwa]

Solved Problem
#CPP#3215

Problem Statement - Output Writing – Logical Operators

Write the output of the following program and explain.

int main( )
{
int a=1,b=0;
int c=!a && b;
cout<<(c || b+a)<<endl;
cout<<(-c && a+b)<<endl;
return 0 ;
}

Solution

TC++ #3215

Run Output

1
0

Notes

int a=1, b=0;
a initialised with 1 and b with 0. 1 is considered as default true conditions and 0 as false condition.

int c=!a && b;
The expression on right will evaluate to false as !a will be false and b is false so two false with && will become false. So c will contain 0.

cout<<(c || b+a)<<endl;
Here c is 0 and b+a will be 1 so || condition between 0 and 1 will return 1.

cout<<(-c && a+b)<<endl;
Here -c will still be 0 and a+b is 1 so && condition between 0 and 1 will return 0.

C++ assumes the True condition as default equivalent to integer value 1 and False condition to integer value 0. Although we do have a bool data type in c++ which can be used for efficient use of true false logic but it is often used by implicitly converting to int data type.