+ 9

# How do we calculate this Exp. ? ββ

#include <stdio.h> #include<stdlib.h> int main (){ int exp=1?0:2?3:4; printf("%d",exp); return 0; } //output:0

21st Feb 2022, 2:35 AM
Mik
+ 3
Mik_RDC Ternary operator syntax: exp = expression ? True : False; So 1 ? 0 : 2 ? 3 : 4 Is like if (1) exp = 0 else if (2) exp = 3 else exp = 4
21st Feb 2022, 1:48 PM
AΝ’J
+ 6
Mik_RDC 1 ? 0 : 2 ? 3 : 4 means 1 ? 0 : (2 ? 3 : 4) = 0 as 1 means true
21st Feb 2022, 3:07 AM
AΝ’J
+ 5
AΝ’J HungryTradie William Owens AnnaiD Hacker-KR4636 Danny Wanyoike Igor Kostrikin Aly Alsayed first of all, what is a test because I don't see a loop or a function, we just assign it to a variable? you don't think it should first test two numbers or true before being assigned like (1&&0)1:0;
21st Feb 2022, 8:55 AM
Mik
+ 3
Your line is defining an int variable called exp with the result of your ternary (second ternary). You could say: int exp; if (1==TRUE){ exp = 0; } else if (2 ==TRUE){ exp = 3; } else{ exp = 4; } As I said before, I'm learning... But I think this is correct.
21st Feb 2022, 9:16 AM
+ 3
Hungry Tradie let's see if this explanation helps more: The ternary operator is used to execute code based on the result of a binary condition. It takes in a binary condition as input, which makes it similar to an 'if-else' control flow block. It also, however, returns a value, behaving similar to a function. result = binaryCondition ? valueReturnedIfTrue : valueReturnedIfFalse; So in the example it was if (1){ exp = 0; } else if (2){ exp = 3; } else { exp = 4; } Remember any non-zero integer evaluates to true. So the binary test if ( true == 1) { exp = 0; } else if (true == 2) { exp = 3; } else { exp = 4; } In ternary the result must match the return type.
21st Feb 2022, 2:01 PM
William Owens
+ 3
Mik_RDC the program outputs 0 because expression: 1?0:2?3:4 Uses ternary operator: condition + "?" + first value + ":" + second value But in a compound form... The important part here and the part which defines the result is the way that expression was written (There's no parentheses but is not needed) The inner condicional operator is evalueted first, because that value is needed for outer ternary operator. This means that.... 1?0:2?3:4 is evalueted in the following way... First, separe expressions 1?0:x --> X is the other value that we don't know yet. But we do know that the second value is the result of expresion 2?3:4 2? 3:4 2 --> is a value greater than 0, so is True, this means the value returned is the first value "3" (if true --> first value, else --> second one) So expression now is 1?0:3 1 is a value grether than 0, so is true, it means the output is 0 (if true --> first value, else --> second one).
21st Feb 2022, 6:03 PM
Hacker-KR4636
+ 3
Mik_RDC like AΝ’J explained, it's just shortcut if-else. The line: int exp = means we are going to assign a value to the variable named exp. then: 1?0:2 means if 1 is true, exp = 0. If 1 is false, exp = 2. But 1 is true, so exp=0, and the rest is not evaluated and we just print the value of exp, which gives us the output 0. Try changing the expression to: int exp = 0?0:2?3:4 because 0? is false, this becomes: exp = 2?3:4 because 2 is true, it will output 3. and try: int exp = 0?1:0?3:4 because 0? is false, this becomes 0?3:4 because 0 is false, it will output 4.
22nd Feb 2022, 10:33 AM
Bob_Li
+ 2
I catch nothing bro can you plz good explain me as it output 0? What result of (2?3:4) ???
21st Feb 2022, 4:05 AM
Mik
+ 2
I'm not up to speed with ternary yet, but I think it is if (1) 0 else{ if (2) 3 else 4 }
21st Feb 2022, 4:33 AM
+ 2
Think of it like AJ stated: If(true) then 0 else if 2 then 3 else 4. This is because any non-zero integer evaluates to true so If 1 written as '1 ?' Then 0 written as '? 0 :' If the 0 and 1 we're swapped then exp == 3 Ternary X ? A : B If(X){ A; } else { B; }
21st Feb 2022, 5:35 AM
William Owens
+ 2
#include <iostream> #include<string> using namespace std; int main() { int num; double height; string name; cout<<"enter an integer: "; cin>>num; cout<<"\n"; cout<<"enter the first name"; cin>>name; cout<<"\n"; cout<<"enter the height"; cin>>height; cout<<"\n"; cout<<"name:"<<name<<"\n"; cout<<"height:"<<height<<"\n"; return 0; } How can I make my input visible in output display!?
21st Feb 2022, 8:43 PM
Vinay Sen
+ 2
HungryTradie I'm starting to understand a little with the last exemple but can you try to combine the ternary and your second Or a simple eg
22nd Feb 2022, 1:49 AM
Mik
+ 2
thank you all for enlightening me, you are really strong
22nd Feb 2022, 1:52 AM
Mik
+ 1
If (exponent==1) //set exponent to 0 exponent = 0; else set exponent to 2 xeponent = 2; // Now the value contains in //variable exponent could be // 0 OR 2. //;Enter new if statement or // next if-then-else // statement. If (exponent==0) //set exponent to 3 exponent = 3; else //set exponent to 4 exponent = 4;
22nd Feb 2022, 11:23 PM
Oliver Pasaribu
+ 1
Oliver you are a bit off on your assessment, reread some of the post.
23rd Feb 2022, 6:33 AM
William Owens
+ 1
Not really, William Owens. I explain the real application of this problem. This is common in value assignment or set or retain the value of certain variable, or quantity. It is like adjusment mechanism. typical control system'.
23rd Feb 2022, 4:22 PM
Oliver Pasaribu
- 1
My name is junior
22nd Feb 2022, 7:54 PM
Bernard Asewie