Friday, March 11, 2011

Structures and Unions

The program shown below, We have declared a four-member structure, the fourth one for keeping the student-totals. We have also declared an array total to keep the subject-totals and the grand-total. The grand-total is given by total.total. Note that a member name can be any valid C name and can be the same as an existing structure variable name. The linked name total.total represents the total member of the structure variable total.

#include <stdio.h>
struct marks
   {
       int  sub1;                                                  
       int  sub2;                                                  
       int  sub3;                                                  
       int  total;                                                 
   };                                                              
void main()
   {
       int  i;                                                     
       struct marks student[3] =  {{45,67,81,0},            
                                   {75,53,69,0},            
                                   {57,36,71,0}};           
       struct marks total= {0,0,0,0};
       for(i = 0; i <= 2; i++)                                     
       {                                                           
    student[i].total = student[i].sub1 + student[i].sub2 + student[i].sub3;
           total.sub1 = total.sub1 + student[i].sub1;              
           total.sub2 = total.sub2 + student[i].sub2;              
           total.sub3 = total.sub3 + student[i].sub3;              
           total.total = total.total + student[i].total;           
       }                                                           
       printf("STUDENT        TOTAL\n");
       for(i = 0; i <= 2; i++)
   printf("Student[%d]      %d\n", i+1,student[i].total);
       printf("\nSUBJECT        TOTAL\n");
       printf("%s    %d\n%s    %d\n%s    %d\n","Subject 1   ", total.sub1,"Subject 2   ", total.sub2,"Subject 3   ", total.sub3);
       printf("\nGrand Total =   %d\n", total.total);
       getch();
   }

No comments:

Post a Comment