学分绩点



Coursera上北大《计算概论A》期中试题

【描述】

某校对本科生的成绩施行平均学分绩点制(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

①一门课程的学分绩点=该课绩点×该课学分

②总评绩点=所有学科绩点之和/所有课程学分之和

现要求你编写程序求出某人A的总评绩点(GPA)。

【输入】

第一行总的课程数nn<10);

第二行相应课程的学分(学分以空格间隔);

第三行对应课程的实际得分;

此处输入的所有数字均为整数。

【输出】

输出有一行,总评绩点,保留2位小数。

【输入示例】

5

4 3 4 23

91 88 7269 56

【输出示例】

2.52

C代码】

---------------

#include<stdio.h>

intmain() {

   /* 成绩与绩点对应关系共10

      SCORE记录每一档成绩的下限、对应的GP记录这一档成绩的绩点

   */

   int nCLASS = 10;

   int SCORE[] = {90, 85, 82, 78, 75, 72, 68,64, 60, 0};

   double GP[] = {4, 3.7, 3.3, 3.0, 2.7, 2.3,2.0, 1.5, 1.0, 0};

   /* credits记录每门课 */

   int credits[10] = {};

   /* 课程数 */

   int nCourse = 0;   

   /* 初始化总学分 */

   int totalCredit = 0;

   /* 初始化总绩点 */

   double totalGP = 0;

   int iCourse, iClass, tmpScore;

   scanf("%d", &nCourse);

   // 输入所有课的学分

   for(iCourse = 0; iCourse < nCourse;++iCourse) {

       scanf("%d",&credits[iCourse]);

       totalCredit += credits[iCourse];

   }

   /* 总绩点(乘以权重)

      输入每门课的成绩并判断绩点,并累加至totalGP

   */

   for(iCourse = 0; iCourse < nCourse;++iCourse) {

       scanf("%d", &tmpScore);

       /* 判断这个成绩落入那个绩点类别 */

       for(iClass = 0; iClass < nCLASS;++iClass) {

           if(tmpScore >= SCORE[iClass]) {

               totalGP += credits[iCourse] *GP[iClass];

                   break;

           }

       }

   }

   printf("%.2f\n", (totalGP /totalCredit));

   return 0;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值