标签:online judge 九度 java
北京大学对本科生的成绩施行平均学分绩点制(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)。
第一行 总的课程数n(n<10);
第二行 相应课程的学分(两个学分间用空格隔开);
第三行 对应课程的实际得分;
此处输入的所有数字均为整数。
输出有一行,总评绩点,精确到小数点后2位小数。(printf("%.2f",GPA);)
5 4 3 4 2 3 91 88 72 69 56
2.52
import 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: 1133
User: Carvin
Language: Java
Result: Accept
****************************************************************/#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: 1133
User: Carvin
Language: C++
Result: Accepted
Time:0 ms
Memory:1020 kb
****************************************************************/标签:online judge 九度 java
原文地址:http://blog.csdn.net/carvin_zh/article/details/44854839