A. 计算GPA
Time Limit: 1000 ms Case Time Limit: 1000 ms Memory Limit: 128 MB
Total Submission: 259 Submission Accepted: 55
Total Submission: 259 Submission Accepted: 55
Description
上学期面对繁重的课程和考试,TYF终于考完了。成绩出来之后,TYF想看一下GPA(Grade Point Average,平均成绩点数)是多少,之后他熟练的打开了教务处,看到绩点显示0.00,他丝毫没有感到吃惊,他知道教务处又出现问题了。之后TYF决定自己写一个程序来计算自己的GPA。想必大家都知道GPA如何计算的,就是加权平均数。计算方式如下:
例如某学生的五门课程的学分和他所获得的绩点为:
A课程四个学分,绩点4;
B课程三个学分,绩点3;
C课程两个学分,绩点4;
D课程六个学分,绩点2;
E课程三个学分,绩点3。
以上五项成绩GPA为:
GPA=(4*4+3*3+2*4+6*2+3*3)/(4+3+2+6+3)=3.00
现在让你帮助TYF完成这项任务。
例如某学生的五门课程的学分和他所获得的绩点为:
A课程四个学分,绩点4;
B课程三个学分,绩点3;
C课程两个学分,绩点4;
D课程六个学分,绩点2;
E课程三个学分,绩点3。
以上五项成绩GPA为:
GPA=(4*4+3*3+2*4+6*2+3*3)/(4+3+2+6+3)=3.00
现在让你帮助TYF完成这项任务。
Input
多组输入,EOF结束
对于每组输入,第一行一个整数n (1<=n<=40),表示课程的数目。
接下来n行,每行两个数,一个整数ai(1<=ai<=10)表示一门课的学分,一个浮点数bi(0<=bi<=4.00),表示一门课的绩点。
对于每组输入,第一行一个整数n (1<=n<=40),表示课程的数目。
接下来n行,每行两个数,一个整数ai(1<=ai<=10)表示一门课的学分,一个浮点数bi(0<=bi<=4.00),表示一门课的绩点。
Output
对于每组输入,输出一行, 为平均成绩点数(保留两位小数)。
Sample Input
Original | Transformed |
5 4 4.0 3 3.0 2 4.0 6 2.0 3 3.0
5[EOL] 4[SP]4.0[EOL] 3[SP]3.0[EOL] 2[SP]4.0[EOL] 6[SP]2.0[EOL] 3[SP]3.0[EOL] [EOF]
Sample Output
Original | Transformed |
3.00
#include<stdio.h>
int main()
{
int c;
float a[41];
while((scanf("%f",&a[0]))!=EOF)
{
float k=0,t=0,gpa;
int i,j;
j=a[0]*2;
for(i=1;i<=j;i++)
scanf("%f",&a[i]);
for(i=1;i<=j;)
{
k=k+a[i]*a[i+1];
t=t+a[i];
i+=2;
}
gpa=k/t;
printf("%.2f\n",gpa);
}
return 0;
}