本题是道水题,简单的计算GPA。
不过通过处理这并不是重点,多次提交后WA到绝望,不得不打开了Discuss,发现了两个问题
第一个是数据类型,题目并没讲清楚学分和成绩的数据类型,本题的答案默认是浮点型,故整型都算错,尽管我们可能输出的是两位浮点型
第二个是换行符,开始是很大意了,没注意到两组输出结果中其实也是有换行符的,按照正常思维,输出结果后带换行符,然后在每个测试组后再加换行符即可,但本题和以前的题目一样,追求输出的美观性,故要求最后一组输出后不得有与下一组数据分隔开的换行符。其实也有道理嘛,都没有下一组测试数据了,要这换行符有何用。
总之,以后在自己WA时,要多方考虑,既考虑是否有某个地方的思路错误,还有就是格式错误PE啊!
贴个代码,纪念为了 PE 和 WA 的2061.
#include<stdio.h>
typedef struct{
char name[35];
double credit;
double score;
}grade;
int main()
{
int N;
scanf("%d", &N);
while(N--){
int K, i, flag = 1;
double sum = 0, sumc = 0;
scanf("%d", &K);
grade g[1000];
for(i = 0; i < K; i++){
scanf("%s %lf %lf", g[i].name, &g[i].credit, &g[i].score);
if(g[i].score >= 0 && g[i].score < 60)
flag = 0;
sum = sum + g[i].credit * g[i].score;
sumc = sumc + g[i].credit;
}
if(flag == 0)
printf("Sorry!\n");
else
printf("%.2lf\n", sum / sumc);
if(N != 0)
printf("\n");
}
return 0;
}