北航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;
} 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值