什么地方错了? 三角形面积

来源:百度知道 编辑:UC知道 时间:2024/06/22 09:13:26
#include<stdio.h>
int main()
{
float a,b,c,h,area;
printf("Please input a,b,c:");
scanf("%f%f%f",&a,&b,&c);
h=(a+b+c)/2;
area=sqrt(h*(h-a)*(h-b)*(h-c));
printf("a=%7.2f,b=%7.2f,c=%7.2f,h=%7.2f\n",a,b,c,h);
printf("三角形的面积=%7.2f\n",area);
return 0;
}

PS:“输出时要有格式说明,取2位小数.”是什么意思?
#include<math.h>
#include<stdio.h>
void main()
{
float a,b,c,h,area;
printf("Please input a,b,c:");
scanf("%f%f%f",&a,&b,&c);
h=(a+b+c)/2;
area=sqrt(h*(h-a)*(h-b)*(h-c));
printf("a=%.2f,b=%.2f,c=%.2f,h=%.2f\n",a,b,c,h);
printf("三角形的面积=%.2f\n",area);
}
系统提示这行有错area=sqrt(h*(h-a)*(h-b)*(h-c)); 错在哪?

没有加头文件math.h。
函数sqrt()是包含在math.h中的。
所以要在一开始加上:#include<math.h>
取两位小数是输出的数据保留小数点后两位,就像楼主所给的程序那样,"%7.2f"前面的7表示输出的数据在屏幕上占的总宽度是7位,后面的.2代表这7位中,有两位是用于显示小数部分的,即保留两位小数。

取2位小数: .2f

你用了sqrt函数所以要加上#include<math.h>
“输出时要有格式说明,取2位小数.”浮点值默认可能有小数点后有六位,题目要求2位.用%.2f就可以实现

如果不取两位小数,输出的格式控制符是,%f,默认输出六位小数.
如果要输出时取两位小数,可以用%0.2f控制输出!(你的题里面为了输出的时候能够对齐,用的是%7.2f,表示的是输出占7位宽,右对齐,这两种你都试一下,看下效果,就会理解了)