依题意直接做即可,注意四舍五入!
#include<cstdio> using namespace std; int main() { int x,n; double score=0,tot=0;//score是每门成绩×学分的总和,tot是学分总和 scanf("%d",&n); for (double a[7]; n; n--) { scanf("%d",&x); for (int i=0; i<7; i++) scanf("%lf",&a[i]); if (x==2) continue;//仅计算必修和限选课程,2为任选 tot+=a[0]; score+=a[0]*(int)(a[1]*a[2]+a[3]*a[4]+a[5]*a[6]+0.5);//注意四舍五入 } printf("%.2lf",score/tot); }