今天咱们继续来顺着洛谷题单广场里面的【入门1】顺序结构的第12题 B2029 大象喝水,这道题目会介绍下等价于if-else函数的三目运算符,话不多说上题目
这道题目就是让我们算一个圆柱形水柱的体积,并且计算至少几个这样的圆柱体体积之和会大于20L,即20dm^3,即20000cm^3。在解读题目的时候就顺手将题目单位统一了,这样的话有利于后期我们的一些计算和比较。
但是计算了圆柱形水柱的体积v之后,我们还要判断20000能否被v整除,可以的话直接输出20000/v,但是不能的话我们就要输出20000/v+1的结果了。我们可以用if-else实现,但是今天我们来使用三目运算符代替if-else结构。
三目运算符,顾名思义,他需要同时对三个元素进行操作。
x?a:b
x:即为判断的条件,相当于if后面()里面的内容
a:x条件成立后执行的语句,相当于if后面的第一个语句块
b:x条件不成立后执行的语句,相当于else后面的第一个语句块
类比之下,我们的if-else是
if(x){
a;
}else{
b;
}
而我们的三目运算符写出来就是
x?a:b
所以我们直接上我们的AC代码
#include
#define PAI 3.14 //宏定义PAI的大小全局应用
int main()
{
int r,h;
double v,n;
scanf("%d %d",&h,&r);
v=PAI*r*r*h;
n=20000/v;
20000/v==(int)n?:n++; //运用三目运算符进行判断
printf("%d",(int)n);
return 0;
}