/*
Copyright (c) 2014,烟台大学计算机与控制工程学院
All rights reserved.
文件名称:test.cpp
作 者:张学伟
完成日期:2016年12月15日
版 本 号:v1.0
运行过程:
#include <stdio.h>
#include <stdlib.h>
#define N 100
struct student
{
int num;
int c;
int math;
float aver;
};
int main()
{
int n,i,sum1=0,sum2=0;
struct student stu[N];
printf("请输入学生人数:");
scanf("%d",&n);
printf("请输入学号,c和数学的成绩:\n");
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;
}
float aver1,aver2;
for(i=0;i<n;i++)
{
sum1+=stu[i].c;
aver1=sum1/5;
sum2+=stu[i].math;
aver2=sum2/5;
}
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("科均分 %.2lf %.2lf\n",aver1,aver2);
printf("得到奖学金的的同学的学号是:\n");
for(i=0;i<n;i++)
if(stu[i].aver>80&&stu[i].c>=60&&stu[i].math>=60)
printf("%d ",stu[i].num);
return 0;
}
运行结果:
知识点总结:运用结构体处理学生的成绩。
学习心得:最后注意将printf。。。放在for之前以免输出的时候输出两次。