please give me answer with details
#include<stdio.h>
main()
{
int i=1;
i=(++i)*(++i)*(++i);
printf("%d",i);
getch();
}
Answer Posted / joe
The precedence of the operations, should be (reading from
left to right in the equation)
++i <first ++i i=2>
++i <second ++i i=3>
* <first product yields 3*3=9>
++i <third ++i i=4>
* <giving the second product 3*4=36>
Thus, the first product (*) is computed before the third ++i
is computed. Once the first product is completed, i is
incremented to i=4 and the second product can occur now.
Now, if you add some parentheses to the expression giving
++i * (++i * ++i)
then you will get 64, as the other replies suggest. Tracing
through the order of operations in this one
++i <first ++i i=2>
++i <second ++I i=3>
++i <third ++I i=4>
* <the product in the parentheses now yields 4*4=16>
* <the first * yields 4*16=64>
Here, the first product (*) cannot occur until it knows the
result of the product in the parenthesis. Thus, all three
increments must occur before the multiplications take place.
| Is This Answer Correct ? | 13 Yes | 1 No |
Post New Answer View All Answers
What do the functions atoi(), itoa() and gcvt() do?
What is the difference between array and pointer?
Explain 'bus error'?
What are the two types of functions in c?
What are the disadvantages of c language?
What is "Duff's Device"?
what is the difference between 123 and 0123 in c?
Why c is procedure oriented?
write a program to copy the string using switch case?
What is indirection?
Explain how can I right-justify a string?
how could explain about job profile
to find the closest pair
Explain c preprocessor?
Why clrscr is used after variable declaration?