Posted on 2010-08-07 22:31
MiYu 閱讀(921)
評論(1) 編輯 收藏 引用 所屬分類:
ACM ( 水題 ) 、
ACM ( 雜題 )
MiYu原創, 轉帖請注明 : 轉載自 ______________白白の屋
題目地址:
http://acm.hdu.edu.cn/showproblem.php?pid=2061
題目描述:
Problem Description
background:
A 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;
}