杭电1202,此题个人觉得有误

来源:互联网 发布:北卡大学淘宝真的假的 编辑:程序博客网 时间:2024/04/28 14:43
若每一科都为0,则gpa应该为0,而不是-1,但是从结果来看不是这样的
#include<iostream>#include<cstdio>using namespace std;struct course{  double credit;  double score;}buf[100];int main(){   int n;   double gpa;   while(scanf("%d",&n)!=EOF){   int count=0;//缺考科目数   double sum = 0;//总分数       double cresum = 0;//总学分   for(int i = 0;i<n;i++){   scanf("%lf%lf",&buf[i].credit,&buf[i].score);   if(buf[i].score==-1)   count++;   else{       int dd = (int)buf[i].score/10;   switch(dd){  case 10:   case 9:sum+=4*buf[i].credit;break;  case 8:sum+=3*buf[i].credit;break;  case 7:sum+=2*buf[i].credit;break;  case 6:sum+=1*buf[i].credit;break;  case 5:  case 4:  case 3:  case 2:  case 1:  case 0:sum = sum;break;   }   }   if(buf[i].score!=-1)   cresum+=buf[i].credit;   }   double gpa = sum/cresum;   if(count==n||sum==0)||sum==0去掉则为出现OLT错误   {      printf("-1\n");  continue;   }else{      printf("%.2lf\n",gpa);   }   }}

0 0
原创粉丝点击