题目

从标准输入读入圆的半径 r,如果半径大于零,计算并输出其周长与面积;如果半径非正,输出错误提示。

输入格式:一行输入一个非负浮点数表示圆的半径 r。

输出格式:依次分行输出半径、周长与面积,保留 4 位小数。

数据范围与约定:0 < r ≤ 10^6。

思路与算法

1. 内置常量 pi
Octave 内置了双精度常数 pi(约 3.141592653589793),切忌自定义 pi = 3.14,那会降低科学计算精度并覆盖原生符号。

2. 几何量非负防御
圆半径属于欧氏几何尺寸,严格要求 r > 0。如果读入非正数,需拦截处理。

3. 乘方运算符
标量乘方在 Octave 中可使用 ^,如 r^2。在标量情境下 ^ 与 .^ 等价。

完整程序

% Octave / MATLAB 第3题:圆的周长与面积
[r, count] = scanf("%f", 1);

if count < 1
    fprintf("错误:缺少半径输入。\n");
    return;
end

% 几何约束校验
if r <= 0
    fprintf("错误:圆半径必须大于 0,当前输入为: %.4f\n", r);
    return;
end

circumference = 2 * pi * r;
area = pi * (r^2);

fprintf("半径: %.4f\n", r);
fprintf("周长: %.4f\n", circumference);
fprintf("面积: %.4f\n", area);

运行示例

输入:

5.0

输出:

半径: 5.0000
周长: 31.4159
面积: 78.5398