C语言-共用体(3)

11

题目描述

 有3个年级的学生,每个学生都有学号,年级,总成绩,
如果是1年级,有3门课,如果是二年级有2门课,三年级有4门课。
输入3个学生的信息,最后输出每个学生的学号,年级,总成绩,

输入

输入三个学生的学号,年级数

如果输入的年级数为   1,则输入3门课的成绩

如果输入的年级数为   2,则输入2门课的成绩

如果输入的年级数为   3,则输入4门课的成绩

输出

输出三个学生的学号,年级,总成绩

样例输入

111 1 90 90 90
222 3 80 80 80 80
333 2 70 90

样例输出

111 1 270
222 3 320
333 2 160
#include <stdio.h>
#include <stdlib.h>
struct stduent{
    int number;
    int grade;
    union course{
        int a[4];
    }x;
}y[3];
int main()
{
    int t=0,i,sum[3]={0};
    for(i=0;i<3;i++){
        scanf("%d %d",&y[i].number,&y[i].grade);

        if(y[i].grade==1){
            t=3;
        scanf("%d %d %d",&y[i].x.a[0],&y[i].x.a[1],&y[i].x.a[2]);
        sum[i]=y[i].x.a[0]+y[i].x.a[1]+y[i].x.a[2];
    }
    if(y[i].grade==2){
        t=2;
        scanf("%d %d",&y[i].x.a[0],&y[i].x.a[1]);
         sum[i]=y[i].x.a[0]+y[i].x.a[1];
    }
    if(y[i].grade==3){
        t=4;
        scanf("%d %d %d %d",&y[i].x.a[0],&y[i].x.a[1],&y[i].x.a[2],&y[i].x.a[3]);
         sum[i]=y[i].x.a[0]+y[i].x.a[1]+y[i].x.a[2]+y[i].x.a[3];
    }
}
    for(i=0;i<3;i++){
        printf("%d %d %d\n",y[i].number,y[i].grade,sum[i]);
    }
 
	return 0;
}