c语言计算三角形面积代码_C 语言

复制代码 代码如下:

//面积公式s = (a+b+c) / 2   area = sqrt(s * (s - a) * (s - b) * (s - c));
//小作业 求三角形的面积

int check(double a);
int check2(double a, double b, double c);

#include <stdio.h>
#include <math.h>
int main(void)
{
    double area = 0;
    double s;
    double a,b,c;
    printf("请输入三角形的三边的长(a b c):");
    scanf("%lf %lf %lf", &a, &b, &c);
    if (check(a) == 1 && check(b) == 1 && check(c) ==1)
    {
        if (check2(a,b,c) == 0)
        {
            printf("您输入的不是三角形.请重新输入\n\r");
            return 0;
        }
        else if (check2(a,b,c) == 1)
        {
            s = (a+b+c) / 2;
            area = sqrt(s * (s - a) * (s - b) * (s - c));
            printf("该三角形的面积是:%g\n\r",area);
        }
    }
    else
        printf("输入有误,请重新输入.\n\r");
    return 0;
}

 

//判断输入的数据是否有效
int check(double a)
{
    if (a > 0)
        return 1;
    else
        return 0;
}

//判断三角形是否有效

int check2(double a, double b, double c)
{
    if ( ((a+b)<=c) | ((a+c)<=b) | ((c+b)<=a) )
        return 0;
    if (abs(a-b)>=c | abs(a-c)>=a | abs(c-b)>=a)
        return 0;
    else
        return 1;
}

 想了下,area不会是垃圾值啊.所以不用写那么多行声明变量诶.....

修改了一些

复制代码 代码如下:

//面积公式s = (a+b+c) / 2   area = sqrt(s * (s - a) * (s - b) * (s - c));
//小作业 求三角形的面积

int check(double a);
int check2(double a, double b, double c);

#include <stdio.h>
#include <math.h>
int main(void)
{
    double area,s,a,b,c;
    printf("请输入三角形的三边的长(a b c):");
    scanf("%lf %lf %lf", &a, &b, &c);
    if (check(a) == 1 && check(b) == 1 && check(c) ==1)
    {
        if (check2(a,b,c) == 0)
        {
            printf("您输入的不是三角形.请重新输入\n\r");
            return 0;
        }
        else if (check2(a,b,c) == 1)
        {
            s = (a+b+c) / 2;
            area = sqrt(s * (s - a) * (s - b) * (s - c));
            printf("该三角形的面积是:%g\n\r",area);
        }
    }
    else
        printf("输入有误,请重新输入.\n\r");
    return 0;
}

 

//判断输入的数据是否有效
int check(double a)
{
    if (a > 0)
        return 1;
    else
        return 0;
}

//判断三角形是否有效

int check2(double a, double b, double c)
{
    if ( ((a+b)<=c) | ((a+c)<=b) | ((c+b)<=a) )
        return 0;
    if (abs(a-b)>=c | abs(a-c)>=a | abs(c-b)>=a)
        return 0;
    else
        return 1;
}

时间: 2024-12-27 13:32:53

c语言计算三角形面积代码_C 语言的相关文章

C语言冒泡排序算实现代码_C 语言

冒泡排序是排序算法的一种,思路清晰,代码简洁,常被用在大学生计算机课程中. "冒泡"这个名字的由来是因为越大的元素会经由交换慢慢"浮"到数列的顶端,故名. 这里以从小到大排序为例进行讲解. 基本思想及举例说明 冒泡排序的基本思想就是不断比较相邻的两个数,让较大的元素不断地往后移.经过一轮比较,就选出最大的数:经过第2轮比较,就选出次大的数,以此类推. 下面以对 3  2  4  1 进行冒泡排序说明. 第一轮 排序过程3  2  4  1    (最初) 2  3 

C语言数据类型转换实例代码_C 语言

数据类型转换就是将数据(变量.表达式的结果)从一种类型转换到另一种类型.例如,为了保存小数你可以将int类型的变量转换为double类型. 数据类型转换的一般格式为: (type_name) expression type_name为要转换到的数据类型,expression为表达式.例如: (float) a; //把a转换为实型 (int)(x+y); //把x+y的结果转换为整型 (float) 100; //将一个常量转换为实型 [示例]将整数转换为浮点数: #include <stdio

C语言system 自动关机函数代码_C 语言

ime_t t; time(&t); 函数名称: time 函数原型: time_t time(time_t *timer) 函数功能: 得到机器的日历时间或者设置日历时间 函数返回: 机器日历时间 参数说明: timer=NULL时得到机器日历时间,timer=时间数值时,用于设置日历时间,time_t是一个long类型 所属文件: <time.h> #include <time.h> #include <stdio.h> #include <dos.h

C语言字符串快速压缩算法代码_C 语言

通过键盘输入一串小写字母(a~z)组成的字符串. 请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串. 压缩规则: 1.仅压缩连续重复出现的字符.比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc". 2.压缩字段的格式为"字符重复的次数+字符".例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz". 示例 输入:"cccddec

C语言 扩展欧几里得算法代码_C 语言

给定两个正整数m和n,我们计算它们的最大公因子d和两个整数a和b,使得a*m+b*n=d 算法流程 E1.置a'=b=1;a=b'=0;c=m,d=n; E2.计算d和r,使得c=q*d+r; E3.若r==0;则退出,当前已有a*m+b*n=d; E4;c=d;d=r;t=a';a'=a;a=t-q*a;t=b';b'=b;b=t-q*b;返回E2. 证明 对于已有的m和n,假设m>n;如果刨除变量a,b,a',b';算法与欧几里得算法完全一样,为计算最大公约数的算法. 最终要求的为a*m+b

C语言求幂计算的高效解法_C 语言

本文实例演示了C语言求幂计算的高效解法.很有实用价值.分享给大家供大家参考.具体方法如下: 题目如下: 给定base,求base的幂exp 只考虑基本功能,不做任何边界条件的判定,可以得到如下代码: #include <iostream> using namespace std; int cacExp(int base, int exp) { int result = 1; int theBase = 1; while (exp) { if (exp & 0x01) result =

基于C语言实现的扫雷游戏代码_C 语言

本文详细讲述了基于C语言实现的扫雷游戏代码,代码中备有比较详细的注释,便于读者阅读和理解.希望对学习游戏开发的朋友能有一点借鉴价值. 完整的实例代码如下: /* 模拟扫雷游戏 */ #include <graphics.h> #include <math.h> #include <stdio.h> #include <dos.h> #include <stdlib.h> #include <conio.h> #include <

使用C++的string实现高精度加法运算的实例代码_C 语言

对于超大数字的运算,用long long int仍然不能解决,这时候就需要考虑通过模拟运算和数组存储来实现高精度运算. 本文讨论借助C++的string来实现高精度的运算. 首先输入的量直接存储为string,设为s1和s2. 接下来设计一个反转函数,用于把整个字符串反转(为了方便后续计算). string reverseStr(string input){ string output = ""; for(int i = 0; i < input.length(); i++){

C语言 数组指针详解及示例代码_C 语言

数组(Array)是一系列具有相同类型的数据的集合,每一份数据叫做一个数组元素(Element).数组中的所有元素在内存中是连续排列的,整个数组占用的是一块内存.以int arr[] = { 99, 15, 100, 888, 252 };为例,该数组在内存中的分布如下图所示: 定义数组时,要给出数组名和数组长度,数组名可以认为是一个指针,它指向数组的第 0 个元素.在C语言中,我们将第 0 个元素的地址称为数组的首地址.以上面的数组为例,下图是 arr 的指向: 下面的例子演示了如何以指针的方