C语言中三角形求面积
#include<stdio.h>#include<math.h>intmain(){doublea,b,c,s,d,f;printf("请输入三角形的三边长:");sc...
#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,s,d,f;
printf("请输入三角形的三边长:");
scanf("%f,%f,%f",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
s=1.0/2*(a+b+c);
d=s*(s-a)*(s-b)*(s-c);
f=sqrt(d);
printf("三角形的面积为:%8.2f\n",f);
}
else
printf("您输入的三角形三边有误!!\n");
return 0;
}
我这个代码怎么错了吗?输出的结果总是错误!
这个代码可以运行就是结果不对! 展开
#include<math.h>
int main()
{
double a,b,c,s,d,f;
printf("请输入三角形的三边长:");
scanf("%f,%f,%f",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
s=1.0/2*(a+b+c);
d=s*(s-a)*(s-b)*(s-c);
f=sqrt(d);
printf("三角形的面积为:%8.2f\n",f);
}
else
printf("您输入的三角形三边有误!!\n");
return 0;
}
我这个代码怎么错了吗?输出的结果总是错误!
这个代码可以运行就是结果不对! 展开
3个回答
展开全部
a,b,c都被定义为double型数据,所以输入时应用%lf
然后你的scanf函数为scanf("%f,%f,%f",&a,&b,&c);
这时输入时应该用“,”将三条边分开
如果不用逗号的话vc++6.0会自动默认为在空格、回车、或者tab时分开
所以直接将逗号删掉就行了。
如果不删的话就只能输入3,4,5即用“,”将数据隔开
然后你的scanf函数为scanf("%f,%f,%f",&a,&b,&c);
这时输入时应该用“,”将三条边分开
如果不用逗号的话vc++6.0会自动默认为在空格、回车、或者tab时分开
所以直接将逗号删掉就行了。
如果不删的话就只能输入3,4,5即用“,”将数据隔开
更多追问追答
追问
那个代码可以运行,只是结果总是错,比如这个输入3 4 5,明明可以构成三角形,应该执行运算的结果还是判断有误!
追答
输入3,4,5就没问题了,用“,”将输入内容隔开
展开全部
你定义的是double类型的 a,b,c,但是在输入时却是float类型的数据,所以报错了。把scanf("%f,%f,%f",&a,&b,&c);中的 %f 改成 %lf 即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
scanf("%f,%f,%f");这个格式就代表例如你输入123就要1,2,3这样输入。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询