依题意直接做即可,注意四舍五入!
#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);
}

京公网安备 11010502036488号