PAT 甲级 1011. World Cup Betting (20)

来源:互联网 发布:怎么拦截淘宝的短信 编辑:程序博客网 时间:2024/05/01 03:34

题目: 点击打开链接

思路:比较简单

           1.输入数据,选择记录每一行中的最大值;

           2.根据每一行中的最大值,判断输出对应的字母;

           3.将每一行中的最大值genuine公式进行计算,结果保留两位小数输出。

疑惑:

           题目里测试案例给出的答案是37.98,实际计算结果是37.975。这样的例子说明保留两位小数输出是四舍五入的。而当利用头文件<iomanip>,使用setprecision(2)来精确两位小数输出时却输出答案37.97,但提交的程序却通过了。

代码:

#include<iostream>#include<iomanip>using namespace std;int main(){double odd[3][3];int b[3];double max;for(int i=0;i<3;++i){b[i]=0;max=0.0;for(int j=0;j<3;++j){                   cin>>odd[i][j];if(odd[i][j]>max){b[i]=j;max=odd[i][j];}}}double sum=1.0;int n;for(int i=0;i<3;i++){n=b[i];switch(n){case 0:{cout<<"W";break;}case 1:{cout<<"T";break;}case 2:{cout<<"L";break;}}cout<<" ";sum*=odd[i][n];}double price=(sum*0.65-1)*2;cout<<setprecision(2)<<fixed<<price<<endl;system("pause");return 0;}