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 2 of 3.

Amit said:   1 decade ago
@Manu. It is compiler dependent.

Manu said:   1 decade ago
#include<stdio.h>

int main()
{
enum status {pass, fail, absent};
enum status stud1, stud2, stud3;

printf("%d %d %d %d \n", absent,stud1,stud2, stud3);
return 0;
}

Output: 2 51 51 8

Please explain why stud1, stud2 = 51 stud3 =8;

Prasad Deokar said:   1 decade ago
i = 0 1 2.

enum status {pass, fail, absent};

enum status stud1, stud2, stud3;

stud1 = pass; ->0

stud2 = absent; ->2

stud3 = fail; ->1

So 0 2 1

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

Ghufran said:   1 decade ago
Simply enum start index from 0 by default if no any value is associated.

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.

Sadddd said:   1 decade ago
Good !

Raghu said:   1 decade ago
Thats good explanation XYZ.

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

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

Hari said:   1 decade ago
Thanks xyz.

I satisfied with your ans.

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;
}


Post your comments here:

Your comments will be displayed after verification.