使用 C 语言计算斜边

CBeginner
立即练习

简介

在本实验中,你将学习如何使用 C 语言编程计算直角三角形的斜边。本实验涵盖了读取两条直角边长度的逐步过程,然后使用勾股定理计算斜边。完成本实验后,你将对如何在 C 语言中进行三角计算有扎实的理解。

实验首先引导你完成读取直角三角形两条直角边长度的过程。然后,你将使用勾股定理(即斜边的平方等于其他两条边的平方和)来计算斜边。最后,你将学习如何打印计算出的斜边。

读取直角三角形的两条直角边

在这一步中,你将学习如何在 C 程序中读取直角三角形的两条直角边。我们将创建一个简单的程序,用于获取用户输入的三角形直角边长度。

首先,导航到项目目录并创建一个新的 C 文件:

cd ~/project
nano hypotenuse.c

现在,添加以下代码以读取直角三角形的两条直角边:

#include <stdio.h>

int main() {
    float leg1, leg2;

    printf("Enter the length of the first leg: ");
    scanf("%f", &leg1);

    printf("Enter the length of the second leg: ");
    scanf("%f", &leg2);

    printf("First leg: %.2f\n", leg1);
    printf("Second leg: %.2f\n", leg2);

    return 0;
}

让我们来分析一下这段代码:

  • 我们使用float类型来允许直角边长度为小数
  • printf()用于提示用户输入
  • scanf()读取用户输入并将其存储在变量leg1leg2
  • 然后我们输出输入的直角边长度以确认输入

编译程序:

gcc hypotenuse.c -o hypotenuse

运行程序时的示例输出:

Enter the length of the first leg: 3
Enter the length of the second leg: 4
First leg: 3.00
Second leg: 4.00

使用勾股定理 c = √(a² + b²)

在这一步中,你将修改之前的程序,使用勾股定理来计算斜边。我们将使用数学库中的sqrt()函数来计算平方根。

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

cd ~/project
nano hypotenuse.c

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

#include <stdio.h>
#include <math.h>

int main() {
    float leg1, leg2, hypotenuse;

    printf("Enter the length of the first leg: ");
    scanf("%f", &leg1);

    printf("Enter the length of the second leg: ");
    scanf("%f", &leg2);

    // 使用勾股定理计算斜边
    hypotenuse = sqrt(leg1 * leg1 + leg2 * leg2);

    printf("First leg: %.2f\n", leg1);
    printf("Second leg: %.2f\n", leg2);
    printf("Hypotenuse: %.2f\n", hypotenuse);

    return 0;
}

使用数学库编译程序:

gcc hypotenuse.c -o hypotenuse -lm

运行程序时的示例输出:

Enter the length of the first leg: 3
Enter the length of the second leg: 4
First leg: 3.00
Second leg: 4.00
Hypotenuse: 5.00

代码要点:

  • #include <math.h>添加用于sqrt()函数的数学库
  • sqrt(leg1 * leg1 + leg2 * leg2)计算斜边
  • -lm标志在编译期间用于链接数学库

打印斜边

在这一步中,你将改进之前的程序,以提供更具格式且对用户更友好的斜边计算输出。

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

cd ~/project
nano hypotenuse.c

修改代码以改善输出格式:

#include <stdio.h>
#include <math.h>

int main() {
    float leg1, leg2, hypotenuse;

    printf("直角三角形斜边计算器\n");
    printf("------------------------------------\n");

    printf("请输入第一条直角边的长度:");
    scanf("%f", &leg1);

    printf("请输入第二条直角边的长度:");
    scanf("%f", &leg2);

    // 使用勾股定理计算斜边
    hypotenuse = sqrt(leg1 * leg1 + leg2 * leg2);

    // 打印格式化后的结果
    printf("\n三角形边长:\n");
    printf("第一条直角边:%.2f\n", leg1);
    printf("第二条直角边:%.2f\n", leg2);
    printf("斜边:%.2f\n", hypotenuse);

    // 额外的计算细节
    printf("\n计算细节:\n");
    printf("公式:c = √(a² + b²)\n");
    printf("        = √(%.2f² + %.2f²)\n", leg1, leg2);
    printf("        = √(%.2f + %.2f)\n", leg1 * leg1, leg2 * leg2);
    printf("        = %.2f\n", hypotenuse);

    return 0;
}

编译程序:

gcc hypotenuse.c -o hypotenuse -lm

运行程序并查看详细输出:

./hypotenuse

示例输出:

直角三角形斜边计算器
------------------------------------
请输入第一条直角边的长度:3
请输入第二条直角边的长度:4

三角形边长:
第一条直角边:3.00
第二条直角边:4.00
斜边:5.00

计算细节:
公式:c = √(a² + b²)
        = √(3.00² + 4.00²)
        = √(9.00 + 16.00)
        = 5.00

主要改进点:

  • 添加了描述性标题
  • 格式化输出并使列对齐
  • 包含了逐步的计算细节
  • 提高了对用户的可读性

总结

在本实验中,你首先学习了如何在 C 程序中通过提示用户输入并将值存储在变量中来读取直角三角形的两条直角边。然后,你使用了勾股定理(即斜边的平方等于其他两条边的平方和)来计算斜边。该程序利用数学库中的sqrt()函数来计算平方根并确定斜边的长度。