void main()
{
int i=5,y=3,z=2,ans;
clrscr();
printf("%d",++i + --z + i++ + --i * ++y);
i=5,y=3,z=2;
ans=++i + --z + i++ + --i * ++y;
printf("\n%d",ans);
getch();
}
Its output is 37 and 31....
Please explain me why its different
How it works.....
Answers were Sorted based on User's Feedback
Answer / ram mohan
Ur approach may correct but I have a small dought
Plz tell me output of
Printf("", ++i + --z +i + --i * ++y) ;
@pawanjhi
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / pawanjha12
here in first statement
printf("%d",++i + --z + i++ + --i * ++y);
argument is : ++i + --z + i++ + --i * ++y.
first it will maintain stack operation like
++y (now fifth, it will execute and, y=4)(top 4)
--i (now fourth, it will execute and, i=6)
(because, last value of i were 7, once i++ were
executed, now --i will less one value in i)(top 3)
i++ (now third, it will execute and, i=6, it will
as it is, its value will for next stack value.)
(top 2)
--z (now second, it will execute and, z=1)(top 1)
++i (first it will execute and, i=6)(top 0)
now (++i + --z + i++ + --i * ++y)
(6+1+6+6*4)=(37)
it is output, say 37,for this printf("%d",++i + --z + i++
+ --i * ++y);
.................................................
Now Let me go with second statement, that is :
ans=++i + --z + i++ + --i * ++y;
here,
first of all ++y will contain the value of variable y=4
++y=4
after this, --i will less the value of variable i, say now
i = 4,
(--i=4),
after this, i++ will execute and, it will not increase the
value of variable i, right now, so value of i, say now i =
4, as it is.
after this, --z will less the value of variable z, say now
z = 1,
(--z=1)
now, ++i will increase the value of variable i.
Say i = 5.
.......................................................
now value of valiable i in memory is 5.
ans=5+1+5+5*4
ans=5+1+5+20
ans=31..........,
still if you are not getting, so come to me at
pankajace12@gmail.com
| Is This Answer Correct ? | 1 Yes | 5 No |
what is meant for variable not found?
How to develop a program using C language to convert 8-bit binary values to decimals. TQ
How to create a program that lists countries capitals when country is entered? (Terribly sorry, I'm a complete novist to coding with C, am looking for inspiration and general tips on how to code and create this program.)
Given an int variable n that has been initialized to a positive value and, in addition, int variables k and total that have already been declared, use a do...while loop to compute the sum of the cubes of the first n whole numbers, and store this value in total . Thus if n equals 4, your code should put 1*1*1 + 2*2*2 + 3*3*3 + 4*4*4 into total . Use no variables other than n , k , and total .
quoroum of computer languages?
A sample program using data structure? what is file handling?
Write a C program to enter 10 integer numbers through one variable and count how many of them are even using while loop ?
How to convert hexadecimal to binary using c language..
1 Answers Bajaj, GAIL, Satyam, Zenqa,
I am using Qt 5.6 during compilation it stops and gives error about Qmake The process "C:QtQt5.6.35.6.3msvc2015_64inqmake.exe" crashed. Error while building/deploying project untitled1 (kit: Desktop Qt 5.6.3 MSVC2015 64bit) When executing step "qmake"
What is the code for following o/p * * * * * * * * * * * * * * * *
what is exceptions?
Assume that the int variables i and j have been declared, and that n has been declared and initialized. Write code that causes a "triangle" of asterisks of size n to be output to the screen. Specifically, n lines should be printed out, the first consisting of a single asterisk, the second consisting of two asterisks, the third consistings of three, etc. The last line should consist of n asterisks. Thus, for example, if n has value 3, the output of your code should be * ** *** You should not output any space characters. Hint: Use a for loop nested inside another for loop.