写这个只是想记录一下本人在刷PAT过程中遇到的一些问题和自己的总结。
现本人情况为:学习了C语言和数据结构,JAVA语言,C++只是一知半解,并没有全部掌握,所以在刷题的过程中,同时记录C++的学习。
1011 World Cup Betting
1.对于题目理解出现问题,需要加强中英文的翻译,没有仔细阅读题目,一开始只是简单粗略地了解题目中的各种要求,结果出现输入结果与要求不一致,这个也是检查了很多遍才发现的,不能只根据题目给出的输出格式来输出还要阅读文中的文字要求。
本题要求的是:
For each test case, print in one line the best bet of each game, and the maximum profit accurate up to 2 decimal places. The characters and the number must be separated by one space.
对于每一个测试用例,打印一行中每个游戏的最佳赌注,最大利润精确到小数点后2位。字符和数字必须用一个空格隔开。
意思便是,每输入一行,就要求出字符,并且输出,字符和数字中间用一个空格隔开。而不是和输出样例中显示的最后输出结果。
正确的如下:
1.1 2.5 1.7
T 1.2 3.1 1.6
T 4.1 1.2 1.1
W 39.31
错误的如下:
1.1 2.5 1.7
1.2 3.1 1.6
4.1 1.2 1.1
T T W 39.31
2.然后可以用一个字符数组存储W、T、L,求出每一个测试用例中的最佳赌注,根据输入的顺序,输出相应的字符。
3.代码如下:
#include<cstdio>
using namespace std;
char str[3]={
'W','T','L'};
int main(){
int x=0;
double sum=1.0,n=0,m=0.0;
for(int i=0;i<3;i++){
n=0.0;
for(int j=0;j<3;j++){
scanf("%lf",&m);
if(m>n){
x=j;
n=m;
}
}
sum*=n;
printf("%c ",str[x]);
}
printf("%.2lf",(sum*0.65-1)*2);
return 0;
}