北航GPA計算


為了方便廣大BUAA的同志們計算自己的GPA績點,我用C語言寫了一個簡單的北航GPA計算程序。

不過這個程序運行的結果與實際大體一致,卻仍然有些許誤差(我自己的測試誤差基本在0.1以內)。本人菜雞一枚,找不到問題所在,如果有哪位同志發現問題歡迎在下面評論(~ ̄▽ ̄)~

/*此程序用於北航GPA計算
百分制學科輸入“成績【空格】學分【回車】”
五級制學科,與百分制學科輸入類似,“優秀”“良好”“中等”“及格”“不及格”分別對應成績“101”“102”“103”“104”“105”
輸入“-1”代表輸入完畢,按回車即可得到GPA*/
 
//此程序測試時與實際GPA基本一致,但有少許誤差,請以實際GPA為准
 
//如果有哪位同志知道誤差產生原因可以在下面評論呦~~ (~ ̄▽ ̄)~ 
 
#include<stdio.h>
 
int main()
{
    int grade[100]={};//用於儲存單科成績
    double point[100]={};//用於儲存單科學分 
    double gpa[100]={};//用於儲存單科gpa
    int i;
    double GPA;
    double sum1=0;//學分績點和 
    double sum2=0;//學分和 
    for(i=0;i<100;i++)
    {
        scanf("%d",&grade[i]);
        if(grade[i]==-1)
        {
            break;
        }
        scanf("%lf",&point[i]);
    }
    int n=i;
    for(i=0;i<n;i++)
    {
        if(grade[i]==101)
        {
            gpa[i]=4;
        }
        else if(grade[i]==102)
        {
            gpa[i]=3.5;
        }
        else if(grade[i]==103)
        {
            gpa[i]=2.8;
        }
        else if(grade[i]==104)
        {
            gpa[i]=1.7;
        }
        else if(grade[i]==105)
        {
            gpa[i]=0;
        }
        else
        {
            gpa[i]=4.0-((100.0-grade[i])*(100.0-grade[i])*3.0)/1600.0;
        }
        sum1=sum1+gpa[i]*point[i];
        sum2=sum2+point[i];
    }
    GPA=sum1/sum2;
    printf("%lf",GPA);
    
    return 0;
} 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM