用 C 语言计算梯形面积

CCBeginner
立即练习

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

简介

在本实验中,你将学习如何使用C语言编程计算梯形的面积。本实验涵盖读取梯形的两条平行边和高的步骤,然后使用公式“面积 = 0.5×(a + b)×h”计算其面积。程序会提示用户输入必要的值,然后计算并显示梯形的面积。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/BasicsGroup -.-> c/variables("Variables") c/ControlFlowGroup -.-> c/if_else("If...Else") c/FunctionsGroup -.-> c/math_functions("Math Functions") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-435154{{"用 C 语言计算梯形面积"}} c/if_else -.-> lab-435154{{"用 C 语言计算梯形面积"}} c/math_functions -.-> lab-435154{{"用 C 语言计算梯形面积"}} c/user_input -.-> lab-435154{{"用 C 语言计算梯形面积"}} c/output -.-> lab-435154{{"用 C 语言计算梯形面积"}} end

读取两条平行边和高

在这一步中,你将学习如何读取梯形的两条平行边和高,为在C语言编程中计算其面积做准备。

首先,让我们为梯形面积计算创建一个新的C文件:

cd ~/project
nano trapezoid_area.c

现在,添加以下代码来读取平行边和高:

#include <stdio.h>

int main() {
    float side1, side2, height;

    // 提示用户输入第一条平行边
    printf("Enter the length of the first parallel side: ");
    scanf("%f", &side1);

    // 提示用户输入第二条平行边
    printf("Enter the length of the second parallel side: ");
    scanf("%f", &side2);

    // 提示用户输入高
    printf("Enter the height of the trapezoid: ");
    scanf("%f", &height);

    // 打印输入值以进行验证
    printf("First side: %.2f\n", side1);
    printf("Second side: %.2f\n", side2);
    printf("Height: %.2f\n", height);

    return 0;
}

编译并运行程序:

gcc trapezoid_area.c -o trapezoid_area
./trapezoid_area

示例输出:

Enter the length of the first parallel side: 5
Enter the length of the second parallel side: 7
Enter the height of the trapezoid: 3
First side: 5.00
Second side: 7.00
Height: 3.00
解释
  • 我们使用float来存储边长和高的十进制数
  • printf()用于提示用户输入
  • scanf()读取用户输入的浮点值
  • 我们打印输入值以验证它们是否被正确捕获

计算面积 = 0.5×(a + b)×h

在这一步中,你将修改之前的C程序,使用公式“面积 = 0.5×(a + b)×h”来计算梯形的面积。

打开现有文件并更新代码:

cd ~/project
nano trapezoid_area.c

用以下实现替换之前的代码:

#include <stdio.h>

int main() {
    float side1, side2, height, area;

    // 提示用户输入第一条平行边
    printf("Enter the length of the first parallel side: ");
    scanf("%f", &side1);

    // 提示用户输入第二条平行边
    printf("Enter the length of the second parallel side: ");
    scanf("%f", &side2);

    // 提示用户输入高
    printf("Enter the height of the trapezoid: ");
    scanf("%f", &height);

    // 使用梯形面积公式计算面积
    area = 0.5 * (side1 + side2) * height;

    // 打印计算出的面积
    printf("Trapezoid Area: %.2f\n", area);

    return 0;
}

编译并运行程序:

gcc trapezoid_area.c -o trapezoid_area
./trapezoid_area

示例输出:

Enter the length of the first parallel side: 5
Enter the length of the second parallel side: 7
Enter the height of the trapezoid: 3
Trapezoid Area: 18.00
解释
  • 我们添加了一个新的area变量来存储计算出的面积
  • 公式0.5 * (side1 + side2) * height用于计算梯形的面积
  • printf()以保留两位小数的形式显示计算出的面积
  • 该计算使用标准的梯形面积公式:A = 0.5(a + b)h

打印面积

在这一步中,你将通过添加格式化输出和错误处理来增强梯形面积计算程序,以改善用户体验。

打开现有文件并更新代码:

cd ~/project
nano trapezoid_area.c

用以下实现替换之前的代码:

#include <stdio.h>

int main() {
    float side1, side2, height, area;

    // 输入验证
    printf("梯形面积计算器\n");
    printf("-------------------------\n");

    // 提示用户输入第一条平行边
    printf("请输入第一条平行边的长度:");
    if (scanf("%f", &side1)!= 1 || side1 <= 0) {
        printf("错误:第一条边的输入无效。\n");
        return 1;
    }

    // 提示用户输入第二条平行边
    printf("请输入第二条平行边的长度:");
    if (scanf("%f", &side2)!= 1 || side2 <= 0) {
        printf("错误:第二条边的输入无效。\n");
        return 1;
    }

    // 提示用户输入高
    printf("请输入梯形的高:");
    if (scanf("%f", &height)!= 1 || height <= 0) {
        printf("错误:高的输入无效。\n");
        return 1;
    }

    // 使用梯形面积公式计算面积
    area = 0.5 * (side1 + side2) * height;

    // 结果的格式化输出
    printf("\n梯形计算结果:\n");
    printf("-----------------------------\n");
    printf("第一条边: %.2f\n", side1);
    printf("第二条边: %.2f\n", side2);
    printf("高:      %.2f\n", height);
    printf("面积:      %.2f 平方单位\n", area);

    return 0;
}

编译并运行程序:

gcc trapezoid_area.c -o trapezoid_area
./trapezoid_area

示例输出:

梯形面积计算器
-------------------------
请输入第一条平行边的长度:5
请输入第二条平行边的长度:7
请输入梯形的高:3

梯形计算结果:
-----------------------------
第一条边:  5.00
第二条边: 7.00
高:      3.00
面积:      18.00 平方单位
解释
  • 添加了输入验证以防止无效输入
  • 通过标题和清晰的标签改进了输出格式
  • 为不正确的输入类型添加了错误处理
  • 包含了所有输入参数和计算出的面积的描述性输出
  • 使用%.2f以保留两位小数的形式显示浮点数

总结

在本实验中,你首先学习了如何使用printf()scanf()函数读取梯形的两条平行边和高。然后,你使用公式“面积 = 0.5×(a + b)×h”(其中a和b是平行边,h是高)计算了梯形的面积。最后,你将计算出的面积打印到了控制台。