求面积,看哪里有错误,输出不对。
double 用 lf接受例子:
double a;
scanf("%lf", a); double类型要用%lffloat是%f 本帖最后由 michaelgao 于 2019-11-20 10:13 编辑
楼上两位正解
#include "stdafx.h"
#include "math.h"
int _tmain(int argc, _TCHAR* argv[])
{
double a=0, b=0, c=0, area=0, p=0;
scanf("%lf,%lf,%lf",&a,&b,&c);
getchar();//取走换行enter符
p = (a + b + c) / 2;
if (a + b > c && a + c > b && b + c > a){
area = sqrt(p*(p - a)*(p - b)*(p - c));
printf("area=%6.2f\n", area);
}
else{
printf("Error\n");
}
return 0;
}
注意几点:
1》变量定义要初始化
2》控制台输入时,要保证在英文输入法,稍不留神就变成中文的,会导致b、c没有取得正确的值,所以你得到的就不是预期正确的值;
3》控制台输入的三个数据之间用逗号分隔,逗号后不能有空格,如3.0,4.0,5.0,否则也会导致b、c没有得到正确值
4》scanf、scanf_s、printf格式化符号
页:
[1]