ZZNUOJ(C/C++)基础练习1011——1020(详解版)
1011 : 圆柱体表面积
题目描述
输入圆柱体的底面半径r和高h,计算圆柱体的表面积并输出到屏幕上。要求定义圆周率为如下宏常量
#define PI 3.14159输入
输入两个实数,表示圆柱体的底面半径r和高h。
输出
输出一个实数,即圆柱体的表面积,保留2位小数,单独占一行。
样例输入
1 1
样例输出
12.57
注意:输入为实数,用double定义变量,输出格式也要注意
C语言版
#include<stdio.h> // 包含标准输入输出库
#define PI 3.14159 // 定义圆周率 PI 的值为 3.14159
int main() // 主函数入口
{
double r, h; // 定义两个双精度浮点变量 r 和 h,分别表示圆柱的底面半径和高
scanf("%lf %lf", &r, &h); // 从用户输入中读取半径 r 和高 h
double S, s1, s2; // 定义三个双精度浮点变量 S、s1 和 s2,分别用于存储圆柱的总表面积、两个底面的面积和侧面积
s1 = 2 * PI * r * r; // 计算两个底面的面积,公式为 2πr²
s2 = 2 * PI * r * h; // 计算侧面积,公式为 2πrh
S = s1 + s2; // 计算总表面积,即两个底面面积加上侧面积
printf("%.2f\n", S); // 输出总表面积 S,保留两位小数
return 0; // 程序正常结束
}
C++版
了解C++操纵符:
C++ 中用于控制输出格式的操纵符——setw 、setfill、setprecision、fixed -CSDN博客
#include<iostream> // 包含输入输出流库
#include<iomanip> // 包含用于控制输入输出格式的库
#define PI 3.14159 // 定义圆周率 PI 的值为 3.14159
#define av(y) setprecision(y) << fixed // 定义宏 av(y),用于设置输出精度为 y 位小数,并固定为小数点后 y 位
using namespace std; // 使用标准命名空间 std
int main() // 主函数入口
{
double r, h; // 定义两个双精度浮点变量 r 和 h,分别表示圆柱的底面半径和高
cin >> r >> h; // 从标准输入读取半径 r 和高 h
double S, s1, s2; // 定义三个双精度浮点变量 S、s1 和 s2,分别用于存储圆柱的总表面积、两个底面的面积和侧面积
s1 = 2 * PI * r * r; // 计算两个底面的面积,公式为 2πr²
s2 = 2 * PI * r * h; // 计算侧面积,公式为 2πrh
S = s1 + s2; // 计算总表面积,即两个底面面积加上侧面积
cout << av(2) << S << endl; // 使用 av(2) 宏设置输出精度为两位小数,然后输出总表面积 S,并换行
return 0; // 程序正常结束
}