ACM___________________________

______________白白の屋
posts - 182, comments - 102, trackbacks - 0, articles - 0
MiYu原创, 转帖请注明 : 转载自 ______________白白の屋

题目地址:
         http://acm.hdu.edu.cn/showproblem.php?pid=2061
题目描述:
Problem Description
background:
new semester comes , and the HDU also meets its 50th birthday. No matter what's your major, the only thing I want to tell you is:"Treasure the college life and seize the time." Most people thought that the college life should be colorful, less presure.But in actual, the college life is also busy and rough. If you want to master the knowledge learned from the book, a great deal of leisure time should be spend on individual study and practise, especially on the latter one. I think the every one of you should take the learning attitude just as you have in senior school.
"
No pain, No Gain", HDU also has scholarship, who can win it? That's mainly rely on the GPA(grade-point average) of the student had got. Now, I gonna tell you the rule, and your task is to program to caculate the GPA.
If there are K(K > 0) courses, the i-th course has the credit Ci, your score Si, then the result GPA is
GPA 
= (C1 * S1 + C2 * S2 +……+Ci * Si……) / (C1 + C2 + ……+ Ci……) (1 <= i <= K, Ci != 0)
If there 
is a 0 <= Si < 60, The GPA is always not existed.
 

Input
The first number N indicate that there are N test cases(N 
<= 50). In each case, there is a number K (the total courses number), then K lines followed, each line would obey the format: Course-Name (Length <= 30) , Credits(<= 10), Score(<= 100).
Notice: There 
is no blank in the Course Name. All the Inputs are legal
 

Output
Output the GPA of each 
case as discribed above, if the GPA is not existed, ouput:"Sorry!"else just output the GPA value which is rounded to the 2 digits after the decimal point. There is a blank line between two test cases. 
 

Sample Input
2
3
Algorithm 
3 97
DataStruct 
3 90
softwareProject 
4 85
2
Database 
4 59
English 
4 81
 

Sample Output
90.10

Sorry
!


题目分析:

         这只是一道简单的数值计算题, 唯一的难度在读题.  直接使用题目给出的公式就可以了, 当然如果挂科的话,要输出 "Sorry!"

下面是题目的大致翻译:
背景:
新的学期即将到来,也正逢杭州电子科技大学50周年校庆。无论你的专业是什么,我唯一要告诉那么的是:“珍惜大学的生活,利用好时间。” 很多人认为大学的生活回是丰富多采。但事实是,大学生活也同样忙碌。如果你要掌握书上的知识,你的空闲时间必须花在自学和实践上,尤其是实践。我认为,作为一位大学生,所有人都必须端正自己的学习态度。
“没有不劳而获的事情”,杭电也设立了奖学金,你能得到吗?它主要依据是学生获得的GPA(测评平均分)。现在,我将告诉你它的规则,你的任务就是编程计算GPA。
假如有K门课程,第i门课的学分为Ci,你的成绩为为Si,则GPA为:
GPA 
= (C1 * S1 + C2 * S2 +……+Ci * Si……) / (C1 + C2 + ……+ Ci……) (1 <= i <= K, Ci != 0)
如果有一门课程成绩在0到60之间,则GPA将不存在。

代码如下:
MiYu原创, 转帖请注明 : 转载自 ______________白白の屋

#include 
<iostream>
int main ()
{
    
int f, T, N;
    
double s, c;
    
double up, down; 
    scanf( 
"%d"&T );
    
while ( T -- )
    {
            scanf ( 
"%d"&N );
            up 
= down = f = 0;
            
while ( N -- )
            {
                  scanf ( 
"%*s%lf%lf"&c, &s );
                  
if ( f )
                  {
                       
continue;
                  }
                  
if ( s < 60 && s >= 0 )
                  {
                       f 
= 1;
                  }
                  up 
+= s * c;
                  down 
+= c;
            }
            printf( f 
? "Sorry!\n" : "%.2f\n", up / down );
            
if ( T ) putchar ( '\n' );
    }
    
return 0;
}

Feedback

# re: HDOJ HDU 2061 Treasure the new start, freshmen! ACM 2061 IN HDU   回复  更多评论   

2010-08-07 22:43 by Tanky Woo
好吧,这题我就直接COPY你的代码了

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理