题目1133:学分绩点 (C++/Java)

题目描述:

北京大学对本科生的成绩施行平均学分绩点制(GPA)。既将学生的实际考分根据不同的学科的不同学分按一定的公式进行计算。公式如下:实际成绩 绩点90——100 4.085——89 3.782——84 3.378——81 3.075——77 2.772——74 2.368——71 2.064——67 1.560——63 1.060以下 01.一门课程的学分绩点=该课绩点*该课学分2.总评绩点=所有学科绩点之和/所有课程学分之和现要求你编写程序求出某人A的总评绩点(GPA)。

输入:

第一行 总的课程数n(n<10);第二行 相应课程的学分(两个学分间用空格隔开);第三行 对应课程的实际得分;此处输入的所有数字均为整数。

输出:

输出有一行,,总评绩点,精确到小数点后2位小数。(printf("%.2f",GPA);)

样例输入: 54 3 4 2 391 88 72 69 56样例输出: 2.52import java.text.DecimalFormat;import java.util.Scanner; public class Main{public static void main(String args[]){Scanner cin=new Scanner(System.in);DecimalFormat decimal_format=new DecimalFormat("#.00");int total_course;int i,j,k;int [] course_GPA=new int[10];int [] course_Grades=new int [10];while(cin.hasNext()){int total_GPA=0;float sum=0;total_course=cin.nextInt();for(i=0;i<total_course;i++){course_GPA[i]=cin.nextInt();total_GPA+=course_GPA[i];}for(j=0;j<total_course;j++){course_Grades[j]=cin.nextInt();}for(k=0;k<total_course;k++){if(course_Grades[k]>=90){sum+=4.0*course_GPA[k];}if((course_Grades[k]>=85)&&(course_Grades[k]<=89)){sum+=3.7*course_GPA[k];}if((course_Grades[k]>=82)&&(course_Grades[k]<=84)){sum+=3.3*course_GPA[k];}if((course_Grades[k]>=78)&&(course_Grades[k]<=81)){sum+=3.0*course_GPA[k];}if((course_Grades[k]>=75)&&(course_Grades[k]<=77)){sum+=2.7*course_GPA[k];}if((course_Grades[k]>=72)&&(course_Grades[k]<=74)){sum+=2.3*course_GPA[k];}if((course_Grades[k]>=68)&&(course_Grades[k]<=71)){sum+=2.0*course_GPA[k];}if((course_Grades[k]>=64)&&(course_Grades[k]<=67)){sum+=1.5*course_GPA[k];}if((course_Grades[k]>=60)&&(course_Grades[k]<=63)){sum+=1.0*course_GPA[k];}if(course_Grades[k]<60){sum+=0.0*course_GPA[k];}}//System.out.println("总绩点"+sum+" "+"总学分"+total_GPA);System.out.print(decimal_format.format(sum/total_GPA));System.out.print("\n");}}}/**************************************************************Problem: 1133User: CarvinLanguage: JavaResult: Accept****************************************************************/转载的C++:

#include<stdio.h>double ScorePoint(int a) {if(a>=90) return 4.0;else if(a>=85) return 3.7;else if(a>=82) return 3.3;else if(a>=78) return 3.0;else if(a>=75) return 2.7;else if(a>=72) return 2.3;else if(a>=68) return 2.0;else if(a>=64) return 1.5;else if(a>=60) return 1.0;else return 0; }int main() {int i,n,sum;//n 总的课程数 sum 所有所有课程学分之和double psum;//所有学科绩点之和int a[10],b[10];//freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);while(scanf("%d",&n) != EOF){sum = 0;psum = 0;//输入课程学分for(i = 0;i < n;i++){scanf("%d",&a[i]);//所有课程学分之和sum += a[i];}//输入课程的实际得分for(i = 0;i < n;i++){scanf("%d",&b[i]);//一门课程的学分绩点=该课绩点*该课学分psum += ScorePoint(b[i]) * a[i];}printf("%.2f\n",psum/sum);}return 0; } /**************************************************************Problem: 1133User: CarvinLanguage: C++Result: AcceptedTime:0 msMemory:1020 kb****************************************************************/

看天,看雪,安安静静,不言不语都是好风景。

题目1133:学分绩点 (C++/Java)

相关文章:

你感兴趣的文章:

标签云: