题目
从标准输入读入圆的半径 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