|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<stdbool.h>
#include<math.h>
int main(){
//定义
float a,b,c;
float S,min,max,h;
_Bool flag=0;
printf("请输入三角形的三边长:");
scanf("%d %d %d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a){
flag=1;
}
if(flag){
max=a>b?a:b;
max=max>c?max:c;
printf("%f",max);
min=a<b?a:b;
min=min<c?min:c;
printf("%f",min);
//mid=a+b+c-max-min;
h=max*max-0.5*0.5*min*min;
printf("%f",h);
S=max*h*0.5;
}
printf("三角形的面积为:%f",S);
//return 0;
}
问题在于scanf函数中使用的是%d格式符,而a、b、c都是float类型,应该使用%f格式符。修改为如下代码:
- scanf("%f %f %f",&a,&b,&c);
复制代码
另外,需要注意的是,在计算h的时候,需要使用sqrt函数计算平方根。修改为如下代码:
- h=sqrt(max*max-0.5*0.5*min*min);
复制代码
|
|