漫漫C仔 发表于 2019-10-30 09:27:27

萌新求问

我在判断是否为三角形,并输出面积,为什么我做不出来的呢?代码如下#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
int main()
{
        int a,b,c,s,area;
       
        printf("请输入3边的边长%d %d %d",a,b,c);
        scanf("%d%d%d",&a,&b,&c);
       
        if(a+b>c&&a+c>b&&b+c>a)
        {
                s=(a+b+c)/2;
                area=((float)sqrt(s*(s-a)*(s-b)*(s-c));
                printf("面积为%d",area);
                }
        else
        {
        printf("不能构成三角形。");
        }
       
        return 0;
}

bin554385863 发表于 2019-10-30 10:55:21

你把area定义成double类型

jackz007 发表于 2019-10-30 11:07:23

本帖最后由 jackz007 于 2019-10-30 11:09 编辑

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

int main()
{
      int a , b , c                                        ;
      double s , area                                    ;
      printf("请输入三边的边长:")                         ;
      scanf("%d%d%d" , & a , & b , & c)                  ;
      if(a > 0 && b > 0 && c > 0 && a + b > c && a + c > b && b + c > a) {
                s = (a + b + c) / 2                        ;
                area = sqrt(s * (s - a) * (s - b) * (s - c)) ;
                printf("面积为 : %.3lf" , area)            ;
      } else {
                printf("不能构成三角形。")                   ;
      }
}
页: [1]
查看完整版本: 萌新求问