• <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
               :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理
            題目描述

            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
            每學(xué)期的期末,大家都會忙于計(jì)算自己的平均成績,這個成績對于評獎學(xué)金是直接有關(guān)的。國外大學(xué)都是計(jì)算GPA(grade point average) 又稱GPR(grade point ratio),即成績點(diǎn)數(shù)與學(xué)分的加權(quán)平均值來代表一個學(xué)生的成績的。那么如何來計(jì)算GPA呢?

            一般大學(xué)采用之計(jì)分法

            A90 - 100 4 點(diǎn)
            B80 - 89 3 點(diǎn)
            C70 - 79 2 點(diǎn)
            D60 - 69 1 點(diǎn)
            E0 - 59 0 點(diǎn)

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

            科目 學(xué)分 分?jǐn)?shù) 點(diǎn)數(shù) 分?jǐn)?shù)×點(diǎn)數(shù) 
            英文  3    92    4     12
            化學(xué)  5    80    3     15
            數(shù)學(xué)  2    60    1      2
            合計(jì)  10   29
            29/10=2.9
            2.9即為某生的GPA
            下面有請你寫一個用于計(jì)算GPA的程序。
             

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

            Output
            對每組數(shù)據(jù)輸出一行,表示該學(xué)生的GPA,保留兩位小數(shù)。如果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了無數(shù)次 我徹底郁悶了 --------------記杭電1202題  回復(fù)  更多評論   

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

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

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

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

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

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

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

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

            2010-07-25 22:18 by yanxiangtianji
            答案錯了
            答案對于gpa為0沒有區(qū)分是全掛了還是全缺考了,單純當(dāng)做全缺考處理。
            我在:http://acm.hdu.edu.cn/discuss/problem/post/reply.php?postid=1090&messageid=1&deep=0有詳細(xì)說明

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            国产精品天天影视久久综合网| 亚洲午夜无码久久久久| 77777亚洲午夜久久多喷| 久久线看观看精品香蕉国产| 久久亚洲精品中文字幕三区| 久久免费观看视频| 久久精品国产色蜜蜜麻豆| 99国产精品久久| 欧美粉嫩小泬久久久久久久 | 国产精品久久久天天影视香蕉| 日本精品久久久久影院日本| 无码国内精品久久人妻| 99久久国产综合精品成人影院| 久久AV高潮AV无码AV| 国产成人AV综合久久| 囯产精品久久久久久久久蜜桃| 国产成人无码精品久久久免费| 日日噜噜夜夜狠狠久久丁香五月 | 三级片免费观看久久| 9久久9久久精品| 久久综合狠狠综合久久| 亚洲午夜久久久| 国产精品九九久久免费视频| 精品久久久噜噜噜久久久| 欧美精品国产综合久久| 久久久久一本毛久久久| 久久国产视频99电影| 99热热久久这里只有精品68| 久久久免费精品re6| 亚洲中文字幕无码一久久区| 国产精品久久久香蕉| 国产99久久久国产精品小说| 欧美亚洲国产精品久久久久| 久久精品国产第一区二区| 久久精品一区二区影院| 精品久久久久久无码专区| 亚洲综合日韩久久成人AV| 亚洲国产欧美国产综合久久| 久久99久国产麻精品66| 香蕉久久av一区二区三区| 亚洲综合伊人久久大杳蕉|