1 条题解
-
0
自动搬运
来自洛谷,原作者为

Igallta
「この世には愛も知らない人が 沢山いるんですよ」搬运于
2025-08-24 21:16:01,当前版本为作者最后更新于2025-03-05 16:33:01,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
简化题意
给你七个浮点数 。
求 、、 哪个最大就输出哪个的编号和值。(编号从左往右分别是 1 2 3)
思路
首先,你得输入这七个变量。
然后注意到数据范围是 ,也就是说最大的情况答案是 ,这个数用 float 存就会炸,所以需要用 double。(但是浮点数应该也不会有人去用 float 吧)
想好之后直接算就可以了,这部分的代码:
cin>>a>>b>>c>>d>>e>>x>>y; double lb1,lb2,lb3; lb1=a*x+b*y; lb2=c*y; lb3=d*y+e;然后就有人不会统计最大值,因为它并非一个数组,可能比较麻烦。我们这里注意到如果有多个最大值那么输出编号最小那个,所以我们可以把最大值求出来之后挨个比较。这样代码量比较小。
然后便是输出的问题,因为输出的权值需要保留两位小数。
对于保留两位小数我们可以用:
cout<<fixed<<setpricision(n)<</*......*/;你可以把 替换为任意整数,这样在从我打的注释开始,后面的数都会保留两位小数。
因为它是把后面的数保留两位小数,所以我们输出的时候先把编号输出了再 setpricision 就可以了。
这部分的代码:
if(maxn==lb1){ cout<<1<<' '<<fixed<<setprecision(2)<<maxn; }else if(maxn==lb2){ cout<<2<<' '<<fixed<<setprecision(2)<<maxn; }else{ cout<<3<<' '<<fixed<<setprecision(2)<<maxn; }这道题就讲完啦,希望可以帮到你!
- 1
信息
- ID
- 8585
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 1
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者