PAT-A 1011. World Cup Betting (20)
2017-02-16 20:23
435 查看
题目链接在此。
给出三行数据,代表三场比赛。每行有三个浮点数,从左到右分别代表W(win), T(tie),L(lose)。现在需要从每行的W,T,L中选择最大的数,并输出每行选的哪一个。设每行的最大数分别为a,b,c,最后输出(a*b*c*0.65-1)*2的值,保留两位小数。
题意
此处就说通俗的意思,其实从样例来看比较好懂一些……给出三行数据,代表三场比赛。每行有三个浮点数,从左到右分别代表W(win), T(tie),L(lose)。现在需要从每行的W,T,L中选择最大的数,并输出每行选的哪一个。设每行的最大数分别为a,b,c,最后输出(a*b*c*0.65-1)*2的值,保留两位小数。
思路
我的思路是用了三个数组a,b,c来保存输入,并且a[3],b[3],c[3]用来保存每行的最大值,a_index, b_index, c_index 用来保存最大值所在的下标,mp用来保存W,T,L到数组的映射,这样方便输出。AC代码
#include<stdio.h> int mp[3] = {'W','T','L'}; int main(){ double a[4] = {0},b[4] = {0},c[4] = {0}; int a_index, b_index, c_index; scanf("%lf %lf %lf",a,a+1,a+2); scanf("%lf %lf %lf",b,b+1,b+2); scanf("%lf %lf %lf",c,c+1,c+2); for(int i = 0 ; i < 3; i++){ if(a[i] > a[3]) { a[3] = a[i]; a_index = i;} if(b[i] > b[3]) { b[3] = b[i]; b_index = i;} if(c[i] > c[3]) { c[3] = c[i]; c_index = i;} } double ans = (a[3]*b[3]*c[3]*0.65-1)*2; printf("%c %c %c %.2f\n",mp[a_index],mp[b_index],mp[c_index],ans); return 0; }疑问
我在自己的机器上跑出来的样例的结果是37.97(37.9750),不明白%.nf这种是如何舍入进位的,在此恳请知道的大神点拨一下~附
《算法笔记》的思路:
令ans记录最大收益,初值为1.0。
每读入一行,就找出该行最大值,并输出其所在下标对应的W,T,L,同时令ans累乘该最大值。
最后输出(ans*0.65-1)*2即可。
相关文章推荐
- PAT (Advanced Level) Practise 1011. World Cup Betting (20)
- PAT甲题题解-1011. World Cup Betting (20)-误导人的水题。。。
- 浙江大学PAT上机题解析之1011. World Cup Betting (20)
- 【PAT Advanced Level】1011. World Cup Betting (20)
- PAT 1011. World Cup Betting (20)
- PAT甲级.1011. World Cup Betting (20)
- PAT甲级真题及训练集(7)--1011. World Cup Betting (20)
- PAT甲级 1011. World Cup Betting (20)
- PAT (Advanced Level) Practise 1011. World Cup Betting (20)
- PAT-PAT (Advanced Level) Practise 1011. World Cup Betting (20) (套公式) 【一星级】
- PAT 1011World Cup Betting (20)
- 【c++】PAT (Advanced Level)1011. World Cup Betting (20)
- PAT(甲级) 1011. World Cup Betting (20)
- [PAT甲级]1011. World Cup Betting (20)(世界杯投注)
- PAT(甲级)1011. World Cup Betting (20)
- PAT (Advanced Level) 1011. World Cup Betting (20) 求最大期望值,简单题
- 【PAT】1011. World Cup Betting (20)
- PAT-1011 World Cup Betting (20)
- 1011. World Cup Betting (20) PAT 甲级
- PAT (Advanced Level) Practise 1011 World Cup Betting (20)