感觉本题没有什么好解释的,已知公式,直接编程即可。
1.统计所有 科目的学分 得到总学分
2.统计所有 成绩对应的绩点*对应的学分即可(如果成绩==-1直接continue,不进行统计),得到总绩点。
3.如果总绩点<0 sorry -1,没有平均绩点
4. 总绩点/总学分 即可得到平均绩点
#include <stdio.h> int f(double x) { if(x>=90)return 4; else if(x>=80)return 3; else if(x>=70)return 2; else if(x>=60)return 1; else return 0; } int main(void) { int n;double cj,zjd,xf,zxf; while(scanf("%d",&n)!=EOF) { zxf=zjd=0; while(n--) { scanf("%lf%lf",&xf,&cj); if(cj==-1)continue; zxf+=xf; zjd+=xf*f(cj); } if(zjd>0) printf("%.2f ",zjd/zxf); else printf("-1 "); } }