写在前面:
题解是对具体题目的编程实现,不会具体讲解C语言语法。请先大致学习好语法,自己敲敲代码后再看题解(上来就直接看题解的习惯不好哟~)。在每一题的题解之前,会列出本题涉及到的语法知识供参考,可以在教材或其他学习资源找到这些内容学习。😀
本题的预备知识:
- 变量的定义与赋值操作
- 输入(scanf)输出(printf)语句
- 宏定义(define)(可以不使用)
计算圆柱的侧面积及体积
成绩 | 5 | 开启时间 | 2020年03月14日 星期六 08:00 |
折扣 | 0.8 | 折扣时间 | 2020年04月28日 星期二 23:55 |
允许迟交 | 是 | 关闭时间 | 2020年05月30日 星期六 23:55 |
该如何处理 double 型的数据:如何定义变量类型?如何使用 scanf 函数?
如果已知圆柱的底面半径 r ,以及高 h ,则可计算出圆柱的侧面积 s=2 π r h ,体积 v=π r 2 h 。其中 π=3.1415926。
输入:
第一行输入圆柱的底面半径 r
第二行输入圆柱的高 h
输出:
s=< 圆柱的侧面积 >,v=< 圆柱的体积 >
要求
1. 所有变量都定义为双精度类型
2. 结果精确到小数点后两位
| 测试输入 | 期待的输出 | 时间限制 | 内存限制 | 额外进程 |
测试用例 1 |
|
| 1秒 | 64M | 0 |
测试用例 2 |
|
| 1秒 | 64M | 0 |
题解
#include <stdio.h> //导入stdio.h库,里面包含输入输出函数
#define PAI 3.1415926
int main() {
double r, h; //定义两个双精度浮点型变量
scanf("%lf %lf", &r, &h);
double s = 2 * PAI * r * h;
double v = PAI * r * r * h;
printf("s=%.2f,v=%.2f\n", s, v);
}
注意,本题使用了宏定义define,其意义是:在编译程序的时候,编译器会自动将程序内的PAI替换成3.1415926。
易错点
- 注意输出double的时候应该是%f,本题需要保留两位小数,所以是%.2f
- 可以不采用宏定义,直接在PAI位置写3.1415926。意思是一样的,但是采用宏定义是很好的编程习惯
- 经过尝试,采用Π取3.14精度不够,与答案要求有小误差,所以要多取几位呀~