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!
#include #include #include using namespace std; int main() { int N,K; cin>>N; for(int i=0;i<N;++i) { string a; cin>>K; char Name[100]; double Credits[K],Score[K]; double s1=0,s2=0,k=0; for(int i=0;i<K;++i) { cin>>a; cin>>Credits[i]>>Score[i]; s1+=Credits[i]*Score[i]; s2+=Credits[i]; if(Score[i]<60) { k++; } } if(k0) cout<<fixed<<setprecision(2)<<s1/s2<<endl; else cout<<“Sorry!”<<endl; if(i!=N-1) cout<<endl; } return 0; } 题目不难但是主义到#include #include #include using namespace std; int main() { int N,K; cin>>N; for(int i=0;i<N;++i) { string a; cin>>K; char Name[100]; double Credits[K],Score[K]; double s1=0,s2=0,k=0; for(int i=0;i<K;++i) { cin>>a; cin>>Credits[i]>>Score[i]; s1+=Credits[i]*Score[i]; s2+=Credits[i]; if(Score[i]<60) { k++; } } if(k0) cout<<fixed<<setprecision(2)<<s1/s2<<endl; else cout<<“Sorry!”<<endl; if(i!=N-1) cout<<endl; } return 0; } 题目不难,但是注意到i!=N-1,如果没有这句话就是错,因为题目要求两组数据之间隔一行,前面没有问题,多输出一行空白行使两组数据分开,但是最后一组数据不需要多输出一行,i!=N-1最后一组数据就不会输出空白行,于是通过。