What will be the value of i and j after execution of following program?
#include<stdio.h>
void main()
{
int i, j;
for(i=0,j=0;i<10,j<20;i++,j++){
printf("i=%d %t j=%d", i, j);
}
}
#include<stdio.h>
void main()
{
int i, j;
for(i=0,j=0;i<10,j<20;i++,j++){
printf("i=%d %t j=%d", i, j);
}
}
A. 10 10
B. 10 20
C. 20 20
D. Run time error
Answer: Option C
Solution(By Examveda Team)
comma operator is executed from left to right so until j<20 for loop statement is true, so both i and j are incremented.
So, i = 20 and j = 20.
Join The Discussion
Comments ( 6 )
Related Questions on Control Structures
A. Enter a number:99
B. Enter a number:99 Number is divisible by 5
C. complier error
D. Run time error
A. Enter your age: xyz You have lived for 0 seconds
B. Enter your age: xyz You have lived for 0.00000 seconds
C. Enter your age: xyz "after that program will stop"
D. Run time error
A. Enter your age : xyz Your age is not valid
B. Enter your age: xyz You have lived for 0 seconds
C. Enter your age: xyz Your age is not valid
D. Complier error
A. 10 10 11 11
B. 10 20 21 21
C. 10 20 21 10
D. 10 20 21 20
When we use The Comma Operator compiler will choose the right most value....(Associativity is Left to Right)....So though when i=10 the condition in the for loop i
when i=20 and j=20 the condition becomes file... when i run this snippet in my editor , it gave me i=19 and j=19 ...So the answer D is incorrect in my opinion.
What would be value of j after the following is executed? k=17; j=6; if (k < 10) j=8; j=j+1; j=j+2;
Please Explain comma operator concept
Comma operator executed left to right is correct.
comma operator is executed from left to right so until j