【2067】圆

【题目描述】

输入半径r,输出圆的直径、周长、面积,数与数之间以一个空格分开,每个数保留小数点后4位。

【输入】

输入半径。

【输出】

如题述。数与数之间以一个空格分开。

【输入样例】

1.0

【输出样例】

2.0000 6.2832 3.1416

【程序分析】

本题给出了几种对PI的实现方式,也进行了比较

推荐使用const,类型安全,编译器会进行类型检查

用预定义宏方式#define,不会进行类型检查

【程序实现】

#include <stdio.h>
#define PI 3.14159265358979323846  // 定义圆周率π

int main() {
    double r;  // 定义半径变量
    
    scanf("%lf", &r);  // 读取半径
    
    double diameter = 2 * r;        // 计算直径
    double circumference = 2 * PI * r;  // 计算周长
    double area = PI * r * r;       // 计算面积
    
    // 输出结果,每个数保留4位小数,用空格分隔
    printf("%.4lf %.4lf %.4lf\n", diameter, circumference, area);
    
    return 0;
}

本例中,用#define来定义了圆周率PI。

下面采用const常量方式定义:

#include <stdio.h>

int main() {
    const double PI = 3.14159265358979323846;  // 使用const定义圆周率π常量
    
    double r;  // 定义半径变量
    
    scanf("%lf", &r);  // 读取半径
    
    double diameter = 2 * r;        // 计算直径
    double circumference = 2 * PI * r;  // 计算周长
    double area = PI * r * r;       // 计算面积
    
    // 输出结果,每个数保留4位小数,用空格分隔
    printf("%.4lf %.4lf %.4lf\n", diameter, circumference, area);
    
    return 0;
}

用标准数学库精度更高

#include <stdio.h>
#include <math.h>  // 包含数学库,其中有M_PI常量

int main() {
    double r;
    scanf("%lf", &r);
    
    double diameter = 2 * r;
    double circumference = 2 * M_PI * r;  // 使用math.h中定义的M_PI
    double area = M_PI * r * r;
    
    printf("%.4lf %.4lf %.4lf\n", diameter, circumference, area);
    
    return 0;
}

几种方式的比较:

  • const常量:更符合C++风格,类型安全
  • math.h的M_PI:标准库提供,精度有保障
  • #define宏:预处理替换,无类型检查
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

earthzhang2021

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值