C Programming - Structures, Unions, Enums - Discussion

Discussion Forum : Structures, Unions, Enums - Find Output of Program (Q.No. 6)
6.
What will be the output of the program ?
#include<stdio.h>

int main()
{
    enum status {pass, fail, absent};
    enum status stud1, stud2, stud3;
    stud1 = pass;
    stud2 = absent;
    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:
No answer description is available. Let's discuss.
Discussion:
24 comments Page 1 of 3.

Krishna said:   2 decades ago
Because enum values are initialised from zero.

Ranjith said:   2 decades ago
Know that enum values are initialising from 0 only how it would get 2 and 1

Sundar said:   2 decades ago
Hi Ranjith,

Kindly read the program very carefully.

The order of values assigned are

stud1 = pass; // here pass = 0
stud2 = absent; // here absent = 2
stud3 = fail; // here fail = 1


So,

printf("%d %d %d\n", stud1, stud2, stud3);

produces the output as 0, 2, 1.

Hope you understand. Have a nice day!

Priya said:   1 decade ago
How it assigning the value 0 for pass 2 for absent and 1 for fail. Wats the logic behind this? Please tell me in detail.

Xyz said:   1 decade ago
Hi Priya,
look at to the program carefully:
notice in line no. 3(where enum has declared) the order of declaration is pass=0,fail=1,then absent=2. So the order of declaration of enum is important,after that wherever we will use these variable the order will remain same it doen't matter in which order we have written it.
int main()
{
enum status {pass, fail, absent};
enum status stud1, stud2, stud3;
stud1 = pass;
stud2 = absent;
stud3 = fail;
printf("%d %d %d\n", stud1, stud2, stud3);
return 0;
}

Hari said:   1 decade ago
Thanks xyz.

I satisfied with your ans.

Sravz said:   1 decade ago
Thank you friends your explanations helped me to get it clear.

Raghu said:   1 decade ago
Thats good explanation XYZ.

You should have write your name anyhow I am fully satisfied with that.

Sadddd said:   1 decade ago
Good !

Raju Naidu said:   1 decade ago
Hai, If you are declare any variables in enum the default initalization is started from 0 and sequentially they are increasing. So they didn't give any initaliztion in our programm that's why bydefault initaliztion will be takes place.

So pass=0, fail=1, abscent=2.


Post your comments here:

Your comments will be displayed after verification.