学生成绩处理

来源:互联网 发布:计算机监控软件 编辑:程序博客网 时间:2024/04/29 20:56

#include <stdio.h>
#define N 100  /*N表示最多允许的学生人数*/
struct Student
{
   int num; //学号
   int c; //C语言成绩
   int math; //数学成绩
   float aver;  //两科均分
};
int main( )
{
   int n;
   int i;
   float aver_C;
   float aver_math;
   float x;//x保存均分
   //定义结构体数组存放多名同学的成绩
   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);
    }
   //输出成绩单
   printf("成绩单:\n");
   printf("学号\tC\t数学\t学分绩\t平均分\t\n");
   for(i=0;i<n;i++)
   {
       x=(float)(stu[i].c*3+stu[i].math*4)/7;
             stu[i].aver=(float)(stu[i].c+stu[i].math)/2;
       printf("%d\t%d\t%d\t%.2f\t%.2f\n",stu[i].num,stu[i].c,stu[i].math,x,stu[i].aver);
   }
   for(i=0;i<n;i++)
   {
       aver_C=stu[i].c+aver_C;
       aver_math=aver_math+stu[i].math;
   }
   printf("科均分:\n");
   printf("%.2f\t%.2f\t\n",aver_C/5,aver_math/5);
   printf("获得奖学金的同学的学号为:\n");
   for(i=0;i<n;i++)
   {
       if(x>80)
        printf("%d ",stu[i].num);
   }
   printf("\n");
   printf("没有挂科的同学为:\n");
   for(i=0;i<n;i++)
   {
       if(stu[i].c>=60&&stu[i].math>=60)
        printf("%d ",stu[i].num);
   }
   return 0;
}

0 0
原创粉丝点击