B4019 [语言月赛 202408] 皆与生物有缘
题意
把两个老师每题给的分全加起来,然后
思路
首先,我们要输入。
根据我们总结的题意,我们还需要把所有分数加起来。
因为我们尽量要让时间更少,能放在一起做的操作,就放在一起。
所以这里输入和累加在一个循环里。
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
m+=a[i];
}
for(int i=1;i<=n;i++){
cin>>b[i];
m+=b[i];
}
然后,我们要处理“向上取整”,这里我们的 C++ 帮我们提供了一个函数,叫做 ceil,它需要传入一个 double 类型的数据,它会返回一个 double 类型的数据,代表向上取整的结果。
注意到我们的 int 类型,所以我们做最后一步操作的时候,需要把 double 类型。
我们只需要把 m/2 改为 m/2.0 就可以了,这样编译器就会认为这是一个浮点数。
最后,因为 ceil 返回的是 double,可能会有精度误差导致 WA,所以要转换为 int 类型。
这部分的代码:
cout<<(int)ceil(m/2.0);
一些扩展小知识
我们现在知道了向上取整是 ceil 函数,那么向下取整呢?叫做 floor。和 ceil 一样,都是传入 double,返回 double。
相信也有一些同学知道“四舍五入”这个概念,它在 C++ 中的函数是 round,用于四舍五入,也是传入 double 返回 double。