• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 7, comments - 13, trackbacks - 0, articles - 37
               :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理
            題目描述

            The calculation of GPA

            Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
            Total Submission(s): 2613    Accepted Submission(s): 598


            Problem Description
            每學期的期末,大家都會忙于計算自己的平均成績,這個成績對于評獎學金是直接有關的。國外大學都是計算GPA(grade point average) 又稱GPR(grade point ratio),即成績點數與學分的加權平均值來代表一個學生的成績的。那么如何來計算GPA呢?

            一般大學采用之計分法

            A90 - 100 4 點
            B80 - 89 3 點
            C70 - 79 2 點
            D60 - 69 1 點
            E0 - 59 0 點

            例如:某位學生修習三門課,其課目、學分及成績分別為:
            英文:三學分、92 分;化學:五學分、80 分;數學:二學分、60分,則GPA的算法如下:

            科目 學分 分數 點數 分數×點數 
            英文  3    92    4     12
            化學  5    80    3     15
            數學  2    60    1      2
            合計  10   29
            29/10=2.9
            2.9即為某生的GPA
            下面有請你寫一個用于計算GPA的程序。
             

            Input
            包含多組數據,每組數據的第一行有一個數N,接下來N行每行表示一門成績。每行有兩個實型的數 s,p,s表示這門課的學分,p表示該學生的成績(百分制)。如果p=-1則說明該學生這門課缺考,是不應該計算在內的。
             

            Output
            對每組數據輸出一行,表示該學生的GPA,保留兩位小數。如果GPA不存在,輸出-1。
             

            Sample Input
            3
            3 92
            5 80
            2 60
             

            Sample Output
            2.90
            鏈接http://acm.hdu.edu.cn/showproblem.php?pid=1202
            我的代碼
            //杭電1202
            #include<iostream>
            #include<iomanip>
            using namespace std;
            int main()
            {
            float suma=0,nowa,nowb,sum=0,point;
            int   n;
            int   flag=0;
            while(cin>>n)
            {
             for(int i=0;i<n;++i)
             {
              cin>>nowa>>nowb;
             if(nowb==-1)
              {
               flag++;
               continue;
              }
              if(nowb!=-1)
              {
             suma+=nowa;
               if(nowb>=90&&nowb<=100)
               point=4;
              if(nowb>=80&&nowb<90)
               point=3;
               if(nowb>=70&&nowb<=79)
             point=2;
               if(nowb>=60&&nowb<=69)
             point=1;
               if(nowb>=0&&nowb<=59)
             point=0;
                sum+=point*nowa;
              }
             
             }
            if(flag!=n)
            {cout<<setiosflags(ios::fixed)<<setiosflags(ios::right)<<setprecision(2);
             cout<<sum/suma<<endl;
            }
            else
              cout<<-1<<endl;
            }
            return 0;
            }
            別人AC的代碼
            #include<stdio.h>
            int main()
            {
               int i,sub;
               float score,allgpa,credit,allcredit;
               while(scanf("%d",&sub)!=EOF)
             {
               allgpa=0;
               allcredit=0;
               for(i=0;i<sub;i++)
              {
                 scanf("%f%f",&credit,&score);
                 if(score!=-1)
                 {
                     allcredit+=credit;
                     if(score==100)
                       allgpa+=credit*4;
                     else
                       if(score>59)
                         allgpa+=credit*((int)score/10-5);
                 }
               }
               if(allcredit==0)
               printf("-1\n");
               else printf("%.2f\n",allgpa/allcredit);
              }
            return 0;
            }
            我怎么也找不出錯誤呀

            Feedback

            # re: WA了無數次 我徹底郁悶了 --------------記杭電1202題  回復  更多評論   

            2009-04-08 23:02 by dengrenyi
            告訴你把 問題好像出在你定義的變量的初始化上

            # re: WA了無數次 我徹底郁悶了 --------------記杭電1202題  回復  更多評論   

            2009-04-08 23:05 by dengrenyi
            你有沒有想過,你在最前面定義的時候初始化,運算一次之后里面保存的是你前面一次計算的值,第二次運行并未進行修改

            # re: WA了無數次 我徹底郁悶了 --------------記杭電1202題  回復  更多評論   

            2009-04-11 11:20 by 路子
            @dengrenyi
            十分感謝

            # re: WA了無數次 我徹底郁悶了 --------------記杭電1202題  回復  更多評論   

            2009-10-15 09:47 by summercool
            問題在這里:
            p可能是實數,不過題意描述得有問題,如果p在89到90之間,你的程序就沒法算了,但AC的代碼還是可以算的,我一開始也是你那樣寫,因為根據題目很直觀就能得到,不過,杭電的這個題目確實有問題!

            # re: WA了無數次 我徹底郁悶了 --------------記杭電1202題  回復  更多評論   

            2010-07-25 22:18 by yanxiangtianji
            答案錯了
            答案對于gpa為0沒有區分是全掛了還是全缺考了,單純當做全缺考處理。
            我在:http://acm.hdu.edu.cn/discuss/problem/post/reply.php?postid=1090&messageid=1&deep=0有詳細說明
            久久精品成人免费网站| 久久精品国产72国产精福利| 久久午夜综合久久| 亚洲国产精品一区二区三区久久| 久久久久亚洲国产| 久久亚洲春色中文字幕久久久| 久久精品国产亚洲欧美| 久久久久亚洲精品无码网址 | 亚洲va久久久噜噜噜久久狠狠| 久久精品国产99国产精品导航| 99久久99久久久精品齐齐| 国产精品成人久久久久久久| 久久天天躁狠狠躁夜夜躁2014| 久久99久久99精品免视看动漫| 久久天天躁狠狠躁夜夜不卡 | 欧美亚洲日本久久精品| 精品久久久久久无码不卡| 色综合久久久久网| 久久水蜜桃亚洲av无码精品麻豆| 久久av免费天堂小草播放| 国产精品久久久久国产A级| 久久夜色精品国产噜噜亚洲a| 91精品久久久久久无码| 亚洲狠狠婷婷综合久久久久| 亚洲人AV永久一区二区三区久久| 亚洲成人精品久久| 久久久久无码精品国产| 伊人久久大香线蕉亚洲| 三级韩国一区久久二区综合| 久久精品国产亚洲5555| 国产高清国内精品福利99久久| 久久久国产精品亚洲一区| 欧美噜噜久久久XXX| 久久亚洲AV无码精品色午夜| 少妇久久久久久被弄到高潮| 久久99精品久久久久久不卡| 久久国产精品久久| 久久综合九色综合97_久久久| 亚洲嫩草影院久久精品| 亚洲天堂久久精品| 久久精品一区二区三区中文字幕 |