C Programming - Declarations and Initializations - Discussion

Discussion Forum : Declarations and Initializations - Find Output of Program (Q.No. 1)
1.
What is the output of the program given below ?
#include<stdio.h>
int main()
{
    enum status { pass, fail, atkt};
    enum status stud1, stud2, stud3;
    stud1 = pass;
    stud2 = atkt;
    stud3 = fail;
    printf("%d, %d, %d\n", stud1, stud2, stud3);
    return 0;
}
0, 1, 2
1, 2, 3
0, 2, 1
1, 3, 2
Answer: Option
Explanation:

enum takes the format like {0,1,2..) so pass=0, fail=1, atkt=2

stud1 = pass (value is 0)

stud2 = atkt (value is 2)

stud3 = fail (value is 1)

Hence it prints 0, 2, 1

Discussion:
57 comments Page 4 of 6.

Vinod said:   9 years ago
enum status stud1, stud2, stud3;

Can anyone explain this declaration statement?

Prema said:   9 years ago
If enum takes value staring from 1 then the output will be D.

Karthi said:   9 years ago
What is the use of enum status stud1,stud2,stud3; line as Vinod asked? Please explain.

Kumar shanu said:   9 years ago
How it can possible?

Asmit said:   9 years ago
Example program:

#include <stdio.h>
enum week{ sunday, monday, tuesday, wednesday, thursday, friday, saturday};
int main(){
enum week today;
today=wednesday;
printf("%d day",today+1);
return 0;
}

Ans is 4 days.

Mounika said:   9 years ago
How it is 0, 2, 1? Where we are declared with 0, 1, 2. So output should be 0, 1, 2.

Rajashekar said:   9 years ago
enum takes the format like {0,1,2..) so pass=0, fail=1, atkt=2.

stud1 = pass (value is 0)

stud2 = atkt (value is 2)

stud3 = fail (value is 1)

Hence it prints 0, 2, 1.

HARIPRASATH PANNEERSELAVAM said:   9 years ago
@RamKrishnan - Thanks for your kind information.

Puja said:   9 years ago
When I run this program then it produces the output only 0, 2 not 1. Why?

Mamun Rahaman said:   9 years ago
Thanks for all your kind information.


Post your comments here:

Your comments will be displayed after verification.