C语言-共用体(3)
题目描述
有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;
}