用 C 语言计算圆的面积和周长

CCBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,我们将创建一个 C 程序来计算圆的面积和周长。这个简单的程序展示了几个基本的编程概念,包括变量声明、用户输入处理、数学计算和格式化输出显示。

Circle Area and Circumference in C

我们将使用以下数学公式:

  • 圆的面积 = π × 半径²
  • 圆的周长 = 2 × π × 半径

在这个实验结束时,你将编写一个完整的 C 程序,该程序接受用户输入并使用这些公式进行计算。

这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 中级 级别的实验,完成率为 67%。获得了学习者 100% 的好评率。

创建程序文件和基本结构

让我们从创建 C 程序文件并设置基本结构开始。我们将在 ~/project/circle_program 目录下创建一个名为 circle.c 的文件。

  1. 导航到项目目录:

    cd ~/project/circle_program
  2. 使用 WebIDE 编辑器创建一个名为 circle.c 的新文件。点击 WebIDE 顶部的“File”菜单,然后选择“New File”。或者,你也可以在文件资源管理器面板中右键单击并选择“New File”。

  3. 将文件命名为 circle.c 并保存到 ~/project/circle_program 目录中。

  4. 现在,让我们在文件中添加 C 程序的基本结构:

    #include <stdio.h>
    
    int main() {
        // 我们将在这里添加代码
    
        return 0;
    }

在上述代码中:

  • #include <stdio.h> 是一个预处理指令,它告诉编译器包含标准输入/输出库,该库提供了像 printf()scanf() 这样的函数。
  • int main() 定义了主函数,它是任何 C 程序的入口点。
  • 花括号 { } 标记了主函数体的开始和结束。
  • return 0; 表示程序成功执行。
  1. 按下 Ctrl+S 或使用“File”菜单并选择“Save”来保存文件。

声明变量和常量

现在我们已经有了基本的程序结构,让我们添加计算所需的变量和常量。

  1. 在编辑器中打开你的 circle.c 文件(如果它还没有打开的话)。

  2. 我们需要几个变量:

    • 一个用于存储圆半径的变量
    • 一个用于存储 π(圆周率)值的常量
    • 用于存储计算得到的面积和周长的变量
  3. 按如下方式更新你的代码:

    #include <stdio.h>
    
    int main() {
        // 声明变量和常量
        float radius;         // 用于存储圆的半径
        const float PI = 3.14159; // 数学常量 π(圆周率)
        float area;           // 用于存储计算得到的面积
        float circumference;  // 用于存储计算得到的周长
    
        return 0;
    }

让我们来理解一下这些变量声明:

  • float radius; —— 我们使用 float 数据类型,因为半径可能是一个小数。
  • const float PI = 3.14159; —— 我们将 PI 定义为常量,因为它的值在程序执行期间不应改变。const 关键字确保了这一点。
  • float area;float circumference; —— 这些变量将存储我们的计算结果,结果可能是小数。

在 C 编程中,我们通常在函数开头声明所有变量。这种做法使程序更有条理,更易于理解。

  1. 保存你的文件(Ctrl+S)。

获取用户输入

现在,让我们添加代码来询问用户圆的半径并读取他们的输入。

  1. 在编辑器中打开你的 circle.c 文件(如果它还没有打开的话)。

  2. 添加提示用户并读取其输入的代码:

    #include <stdio.h>
    
    int main() {
        // 声明变量和常量
        float radius;         // 用于存储圆的半径
        const float PI = 3.14159; // 数学常量 π(圆周率)
        float area;           // 用于存储计算得到的面积
        float circumference;  // 用于存储计算得到的周长
    
        // 提示用户输入半径
        printf("Please enter the radius of the circle: ");
    
        // 从用户输入中读取半径值
        scanf("%f", &radius);
    
        // 验证输入(可选,但为良好实践)
        if (radius <= 0) {
            printf("Error: Radius must be a positive number\n");
            return 1;  // 以错误代码退出
        }
    
        return 0;
    }

让我们来理解一下我们添加的内容:

  • printf("Please enter the radius of the circle: "); —— 这会显示一条消息,提示用户输入半径。
  • scanf("%f", &radius); —— 这会从用户那里读取一个浮点数,并将其存储在 radius 变量中。
    • %f 是浮点数的格式说明符。
    • &radius 传递 radius 变量的内存地址,以便 scanf() 可以修改其值。
  • 我们添加了一个简单的验证检查,以确保半径为正数,因为圆的半径不能为零或负数。

scanf() 函数用于从标准输入(键盘)读取格式化输入。使用正确的格式说明符(浮点数使用 %f)并使用 & 运算符传递变量的地址非常重要。

  1. 保存你的文件(Ctrl+S)。

计算面积和周长

现在我们已经获取了半径,就可以使用公式来计算圆的面积和周长了。

  1. 在编辑器中打开你的 circle.c 文件(如果它还没有打开的话)。

  2. 添加计算代码:

    #include <stdio.h>
    
    int main() {
        // 声明变量和常量
        float radius;         // 用于存储圆的半径
        const float PI = 3.14159; // 数学常量 π(圆周率)
        float area;           // 用于存储计算得到的面积
        float circumference;  // 用于存储计算得到的周长
    
        // 提示用户输入半径
        printf("Please enter the radius of the circle: ");
    
        // 从用户输入中读取半径值
        scanf("%f", &radius);
    
        // 验证输入
        if (radius <= 0) {
            printf("Error: Radius must be a positive number\n");
            return 1;  // 以错误代码退出
        }
    
        // 计算圆的面积
        area = PI * radius * radius;
    
        // 计算圆的周长
        circumference = 2 * PI * radius;
    
        return 0;
    }

让我们来理解一下这些计算:

  • area = PI * radius * radius; —— 这使用公式 π × r² 来计算面积,其中 r 是半径。
  • circumference = 2 * PI * radius; —— 这使用公式 2 × π × r 来计算周长。

在 C 语言中,乘法运算符是 *。要计算 r²,我们只需将半径乘以自身(radius * radius)。对于更复杂的数学运算,我们会使用 math.h 库中的函数,但我们的计算足够简单,不需要使用该库。

  1. 保存你的文件(Ctrl+S)。

显示结果并测试程序

让我们通过添加显示结果的代码来完成这个程序,然后编译并运行它,看看它是否能正确工作。

  1. 在编辑器中打开你的 circle.c 文件(如果它还没有打开的话)。

  2. 添加显示结果的代码:

    #include <stdio.h>
    
    int main() {
        // 声明变量和常量
        float radius;         // 用于存储圆的半径
        const float PI = 3.14159; // 数学常量 π(圆周率)
        float area;           // 用于存储计算得到的面积
        float circumference;  // 用于存储计算得到的周长
    
        // 提示用户输入半径
        printf("Please enter the radius of the circle: ");
    
        // 从用户输入中读取半径值
        scanf("%f", &radius);
    
        // 验证输入
        if (radius <= 0) {
            printf("Error: Radius must be a positive number\n");
            return 1;  // 以错误代码退出
        }
    
        // 计算圆的面积
        area = PI * radius * radius;
    
        // 计算圆的周长
        circumference = 2 * PI * radius;
    
        // 显示结果
        printf("\nResults for a circle with radius %.2f units:\n", radius);
        printf("Area: %.2f square units\n", area);
        printf("Circumference: %.2f units\n", circumference);
    
        return 0;
    }

让我们来理解一下输出代码:

  • printf("\nResults for a circle with radius %.2f units:\n", radius); —— 这会显示保留 2 位小数的半径。
  • printf("Area: %.2f square units\n", area); —— 这会显示保留 2 位小数的计算所得面积。
  • printf("Circumference: %.2f units\n", circumference); —— 这会显示保留 2 位小数的计算所得周长。

%.2f 格式说明符告诉 printf() 以保留 2 位小数的方式显示浮点数,使输出更易读。

  1. 保存你的文件(Ctrl+S)。

  2. 现在,让我们来编译这个程序。在终端中,导航到你的项目目录并使用 gcc 编译器:

    cd ~/project/circle_program
    gcc circle.c -o circle

    -o circle 选项告诉编译器创建一个名为 circle 的可执行文件。

  3. 如果编译成功,你可以使用以下命令运行你的程序:

    ./circle
  4. 当出现提示时,输入一个半径值(例如 5)并按回车键。你应该会看到类似于以下的输出:

    Please enter the radius of the circle: 5
    
    Results for a circle with radius 5.00 units:
    Area: 78.54 square units
    Circumference: 31.42 units
  5. 尝试再次运行程序,输入不同的半径值,以确认程序能正确工作。

恭喜!你已经成功创建了一个 C 程序,它可以根据用户输入计算并显示圆的面积和周长。

总结

在这个实验中,你已经成功创建了一个 C 程序,该程序可以:

  1. 提示用户输入圆的半径
  2. 读取并验证用户的输入
  3. 使用公式 π × r² 计算圆的面积
  4. 使用公式 2 × π × r 计算圆的周长
  5. 以适当的格式显示计算结果

在此过程中,你学习了几个重要的 C 编程概念:

  • 使用 #include 包含头文件
  • 定义和使用变量及常量
  • 使用 scanf() 读取用户输入
  • 进行数学计算
  • 使用 printf() 显示格式化输出
  • 编译和运行 C 程序

这些基础技能是构建更复杂 C 程序的基石。现在,你可以基于这些知识,创建更复杂的、涉及用户交互和计算的应用程序。