栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

学分绩点pta(C语言)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

学分绩点pta(C语言)

                                                   14 学分绩点

任务描述
北京大学对本科生的成绩施行平均学分绩点制(GPA)。既将学生的实际考分根据不同的学科的不同学分按一定的公式进行计算。
公式如下:
实际成绩 绩点
90——100 4.0
85——89 3.7
82——84 3.3
78——81 3.0
75——77 2.7
72——74 2.3
68——71 2.0
64——67 1.5
60——63 1.0
60以下 0
1.一门课程的学分绩点=该课绩点*该课学分
2.总评绩点=所有学科绩点之和/所有课程学分之和
现要求你编写程序求出某人A的总评绩点(GPA)。
输入格式:
输出有一行,总评绩点,精确到小数点后2位小数。(printf(“%.2f”,GPA);)
输入样例:

5
4 3 4 2 3
91 88 72 69 56

输出样例:

2.52

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
本题思路简单,注意用double而不是float。
代码如下:

*#include 
int main()
{
	int n,a[10],b[10];
	int i=0,result=0;;
	double sum=0.0;
	scanf("%d",&n);
	for(i=0;i
		scanf("%d",&a[i]);
		result+=a[i]; 
	}
	for(i=0;i
		scanf("%d",&b[i]);
		if(b[i]>=90)
		sum+=4.0*a[i];
		else if(b[i]>=85)
		sum+=3.7*a[i];
		else if(b[i]>=82)
		sum+=3.3*a[i];
		else if(b[i]>=78)
		sum+=3.0*a[i];
		else if(b[i]>=75)
		sum+=2.7*a[i];
		else if(b[i]>=72)
		sum+=2.3*a[i];
		else if(b[i]>=68)
		sum+=2.0*a[i];
		else if(b[i]>=64)
		sum+=1.5*a[i];
		else if(b[i]>=60)
		sum+=1.0*a[i];
		else
		sum+=0;
	}
	printf("%.2f",sum/result);
	return 0;
 }

也可以是这样的

#include 
double grade(int m)
{
	int i;
	if(m>=90)
		return 4.0;
		else if(m>=85)
		return 3.7;
		else if(m>=82)
		return 3.3;
		else if(m>=78)
		return 3.0;
		else if(m>=75)
		return 2.7;
		else if(m>=72)
		return 2.3;
		else if(m>=68)
		return 2.0;
		else if(m>=64)
		return 1.5;
		else if(m>=60)
		return 1.0;
		else
		return 0;
}
int main()
{
	int n,a[10],b[10];
	int i=0,result=0;
	double sum=0.0;
	scanf("%d",&n);
	for(i=0;i
		scanf("%d",&a[i]);
		result+=a[i]; 
	}
	for(i=0;i
		scanf("%d",&b[i]);
		sum+=grade(b[i])*a[i];
	}
	printf("%.2f",sum/result);
	return 0;
 } 

反正也差不多吧。
I’m back and I’m unstoppable !

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/864676.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号