项目2-学生成绩处理(2)

来源:互联网 发布:多机器人路径规划算法 编辑:程序博客网 时间:2024/05/17 09:28

问题描述:

2)请在(1)的程序的基础上增加功能,使运行结果如下图:
这里写图片描述
其中,需要做出的改动是:

  • 计算每名学生的学分绩——各科成绩乘以学分的和,再除以总学分(本题中,C语言和数学课的学分分别是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;   //定义结构体数组存放多名同学的成绩   struct Student stu[N];   printf("请输入学生人数: ");   scanf("%d", &n);   printf("请输入学号、C和数学课的成绩: \n");   //输入数据   int i;   float sum1=0,sum2=0;   for(i=0;i<n;i++)   {       scanf("%d %d %d",&stu[i].num,&stu[i].c,&stu[i].math);       stu[i].aver=(stu[i].c*3+stu[i].math*4)/7.0;       sum1=sum1+stu[i].c;       sum2=sum2+stu[i].math;   }    //输出成绩单    printf("成绩单:\n");    printf("学号\tC\t数学\t学分绩\n");    for(i=0;i<n;i++)    {        printf("%d\t%d\t%d\t%.2f\n",stu[i].num,stu[i].c,stu[i].math,stu[i].aver);    }    printf("科均分\t%.2f\t%.2f\t\n",sum1/n,sum2/n);        printf("得奖学金的同学学号是:\n");        for(i=0;i<n;i++)        {        if(stu[i].c>=60&&stu[i].math>=60&&stu[i].aver>=80)            printf("%d ",stu[i].num);        }   return 0;}






                                             
0 0
原创粉丝点击