#include<stdio.h>
void main()
{
int i=1;
printf("%d%d%d",i++,++i,i);
}
Answers were Sorted based on User's Feedback
Answer / medo
221...
In printf() function compiler calculates the values from
right to left,but prints the values from left to right.
| Is This Answer Correct ? | 28 Yes | 13 No |
Answer / samrat
The Ans is: 2,3,3
In printf() the evaluation starts from right and the
printing of the values start from left.
Coming from right, the initial value is 1, after that ++i
will increment the value of i to 2. Now i++ will not be
incremented now. It will be incremented after the first "i"
is printed.
So we print 2 first, then the value of i is incremented to 3
(by executing i++). So for the other two i's the value will
be 3. So the ans is 2,3,3
| Is This Answer Correct ? | 13 Yes | 6 No |
Basically in printf the values are calcualted from right to left...and the output is displayed from left to right.
so the output will be
221
first one will be printed
then one will be incremented by one and made as two..since it is a pre increment and will be printed..
then the value now is 2..so it will be printed then it will be incremented { post increment }..
good question..
a typical example for working of Printf
| Is This Answer Correct ? | 1 Yes | 0 No |
Answer / prem_mallappa
The right answer is : Unpredictable/implementation defined behaviour.
Why? : get a C faq's book or visit online at c-faq.org
Reason: variable 'i' is changed more thane once between 'sequence point', a sequence point is a semicolon in 'C'. in such cases the result is unknown or compiler dependent.
| Is This Answer Correct ? | 1 Yes | 0 No |
I AM RICKY DOBRIYAL
THIS ANSWER IS DEFINETLY CORRECT
221
BECAUSE COMPILER CALCULATE RIGHT TO LEFT
| Is This Answer Correct ? | 2 Yes | 1 No |
Answer / mementomori76
answer is 221, but you shouldn't use void main
it's better to use int main()
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / rakesh
121
the first value is post increment(++i) and so at the first compilation the value is not incremented.. the next value is pre increment(i++) so it is incremented at the first compile. the third is the same as the input.
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / shahenshah07
its o/p:2 2 1
cause when parameter pass to any f'n its stored in a
stack(lifo).dats y its print i,++i;i++ respectively.
| Is This Answer Correct ? | 0 Yes | 0 No |
What is probability to guarantee that the task a programmer is going to create will be created and be able to run on a particular system (RTOS/GPOS).
Given an int variable n that has already been declared and initialized to a positive value, and another int variable j that has already been declared, use a do...while loop to print a single line consisting of n asterisks. Thus if n contains 5, five asterisks will be printed. Use no variables other than n and j .
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.....
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 .
WHAT WILL BE THE OUTPUT OF THE FOLLOWING QUESTION void main() { int x=4,y=3,z; z=x-- -y; printf("%d%d%d",x,y,z); }
full c programming error question based problem
class test { int a; public: test(int b):a(b){} void show(){ cout<<a; } }; void main() { test t1; test t2(5); t1.show(); t2.show(); } }
How to reverse a linked list without using array & -1? Thank you.
what is syntax error?
how to convert decimal to binary in c using while loop without using array
50 Answers Apple, Aptech, Arwen Tech, BCS, C2D Software, CEC,
Answering Yes or No in C++...using only stdio.h and conio.h..........help me please...? here's must be the output of the program: Screen A Exam No. items Score 1 20 20 2 35 35 Another Entry? [Y] or [N] : Screen B: Record No. Student's Name: 1 Fernando Torres 2 Chuck Norris Note: if you press Y, the program must repeat the procedure in screen A, then if N, the program must proceed to the screen B....Please Help me out............
Given that two int variables, total and amount , have been declared, write a sequence of statements that: initializes total to 0 reads three values into amount , one at a time. After each value is read in to amount , it is added to the value in total (that is, total is incremented by the value in amount ). Instructor's notes: If you use a loop, it must be a for loop. And if you use a loop control variable for counting, you must declare it.