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

Sonu said:   1 decade ago
But while declaring the sequence is ok but in the output why the sequence change ?

Swapnil said:   1 decade ago
@Sonu

first of all you need to observe program correctly because in program the variable atkt is used first which has value 2 assign already that's way output sequence is changed.

Pinky said:   1 decade ago
Thanks Rama Krishna nice explanation

Subhabrata said:   1 decade ago
What is "status" here for? can anyone tell me?

JITIN JINDAL said:   1 decade ago
It is not necessary that enum types will always start from 0 and so on we can change it as enum xyz{A=2,B,C,Y=9,Z,J,K=11,M};

Here as A is declared with 2 so now B has index 3 n C has index 4 now see we have given Y with an index of 9 so Z and J will be indexed as 10 n 11 respectively and K will also share the same index as 11 and has index 12.

Shafi said:   1 decade ago
What is the need of stud1,stud2, stud3 declared as enum type ?

declaration of stud1,stud2, stud3 as int type is Ok. it will made to confuse.

Ashu said:   1 decade ago
What is the need of this datatype ?

Samadhan Sakhale said:   1 decade ago
Will you please tell me enum in short?

Mosim said:   1 decade ago
Plese explain me enump?

Maheshwari said:   1 decade ago
Please explain me enum deeply?


Post your comments here:

Your comments will be displayed after verification.