c语言作业3

来源:百度知道 编辑:UC知道 时间:2024/09/28 14:58:44
知两直角边a,b
求直角斜边c,以c为半径求面积d。
main()
{
int a,b,c;
float d;
a=3;
b=4;
c=sqrt(a*a+b*b);
d=3.14*c*c;
printf("%f",d);
}
我要先求c 然后用c的值来算d 这样行吗?运行后答案不对。

由于sqrt的返回类型为double,
所以你用int型的c来记录结果,存在数据丢失。

这么改:
#include<stdio.h>
#include<math.h>
main()
{
int a,b;
double c,d; //用double型的c记录sqrt的返回值
a=3;
b=4;
c=sqrt(a*a+b*b);
d=3.14*c*c;
printf("%lf",d); //输出的格式变为%lf
}