题解 | #牛牛的水杯#

牛牛的水杯

https://www.nowcoder.com/practice/c196c47c23394bf3bdd4f82a838df6bf

#include<stdio.h>
int main()
{
    int h,r,a;//定义整型杯子的高度和底面半径r,a为杯数
    scanf("%d %d",&h,&r);//输入高度和半径
    double v;//定义杯子体积,因为要乘3.14所以有很大可能是小数,用double范围更广精度更高
    v=3.14*h*r*r;//计算杯子体积
    a=(int)(10000.0/v);//1升水=1000立方厘米,10升水=10000立方厘米,
                       //之所以是10000.0而不是10000,是因为10000.0为分数,10000是整数,
                       //v有可能是分数也有可能是整数,但整数相除,结果只保留整数部分,
                       //但我们要精确的分数,
                       //所以考虑这个情况,用10000.0,分数除以整数或分数,结果都是分数形式
                       //(int)强制转换类型为整型,只保留整数部分
                       //之所以用它,是因为几杯水得是整数,没有几点几杯水
    printf("%d",10000.0/v==a?a:a+1);//算杯数存在两种情况,一种10000刚好是v的整数倍,那a=10000.0/v
                                    //另一种情况,10000不是v的整数倍,
                                    //那a=(int)(10000.0/v)仅保留了整数部分
                                    //实际至少需要的杯数要在此基础上加1,才能把10升水喝完
                                    //三目运算符:判断条件?a:b,若判断条件为真,输出a,为假,输出b
    return 0;
}//之所以不用取余来判断10000是不是v的整数倍,是因为%两边要求均为整数,但v有可能为分数,也有可能为整数,强制转换的话,那算的也是10000是不是v的整数部分的整数倍

总结:

强制转换,在要强制转换数的前面加就行

整数相除得整数

三目运算符:判断条件?a:b

取余两边必须为整数

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-11 12:31
以前小时候我最痛恨出轨、偷情的人,无论男女,为什么会出轨?现在我成了自己最讨厌的人,没想到分享的东西在牛客会被这么多人看,大家的评价都很中肯,我也认同,想过一一回复,但我还是收声了,我想我应该说说这件事,这件事一直压在我心里,是个很大的心结,上面说了人为什么出轨,我大概能明白了。我们大一下半年开始恋爱,开始恋爱,我给出了我铭记3年的承诺,我对她好一辈子,我永远不会背叛,我责任心太重,我觉得跟了我,我就要照顾她一辈子,我们在一起3年我都没有碰过她,她说往东我就往东,她说什么我做什么,她要我干什么,我就干什么!在学校很美好,中途也出过一些小插曲,比如男闺蜜、男闺蜜2号等等等。但我都强迫她改掉了,我...
牛客刘北:两个缺爱的人是没有办法好好在一起的,但世界上哪有什么是非对错?你后悔你们在一起了,但是刚刚在一起的美好也是真的呀,因为其他人的出现,你开始想要了最开始的自己,你的确对不起自己,21岁的你望高物远,你完全可以不谈恋爱,去过你想要的生活,你向往自由,在一起之后,你要想的不是一个人,而是两个人,你不是变心了,就像你说的,你受够了,你不想包容了,冷静几天是你最优的选择,爱人先爱己。
社会教会你的第一课
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 12:10
点赞 评论 收藏
分享
06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
我的简历长这样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务