学生成绩管理改装版

来源:互联网 发布:java开发案例 编辑:程序博客网 时间:2024/04/29 08:07

作者:夏晓林

时间:2016.12

问题描述:

(1)定义学生结构体,在结构体数组中,输入了学生学号和两门课的成绩,计算均分后,输出成绩单。

(2)计算每名学生的学分绩——各科成绩乘以学分的和,再除以总学分(本题中,C语言和数学课的学分分别是3和4);

(3)计算各科的均分;

(4)输出得奖学金的同学学号清单——奖学金规则是,学分绩要高于80且没有挂科。

问题及代码:

#include <stdio.h>#define N 100  /*N表示最多允许的学生人数*/struct Student{    int num; //学号    int c; //C语言成绩    int math; //数学成绩    float aver;  //两科均分};int main( ){    int n,i;    float a=0,b=0;    //定义结构体数组存放多名同学的成绩    struct Student stu[N];    printf("请输入学生人数: ");    scanf("%d", &n);    printf("请输入学号、C和数学课的成绩: \n");    for(i=0; i<n; i++)    {        scanf("%d",&stu[i].num);        scanf("%d",&stu[i].c);        scanf("%d",&stu[i].math);        stu[i].aver=(stu[i].math*4+stu[i].c*3)/7.0;        a+=stu[i].math;//数学的总成绩        b+=stu[i].c;//c语言的总成绩    }    printf("成绩单:\n");    printf("学号 c 数学 学分绩\n");    for(i=0; i<n; i++)        printf("%d  %d  %d  %.2f\n",stu[i].num,stu[i].c,stu[i].math,stu[i].aver);    printf("科均分    %.2f    %.2f\n",b/n,a/n);    printf("得奖学金的同学的学号是:\n");    for(i=0; i<n; i++)    {        if(stu[i].aver>=80&&stu[i].math>=60&&stu[i].c>=60)            printf("%d  ",stu[i].num);    }    return 0;}

运行结果:




0 0
原创粉丝点击