C语言设计计算直角三角形的面积,找错

#include <stdio.h>
int main()
{
float a,b,mult;
printf("请输入三角形的底边和高(单位米),输入格式(a,b):");
scanf("%f,%f",&a,&b);
mult=a*b*(1/2);
printf("底边长为%.2f米,高为%.2f米的三角形,面积为%.2f平方米\n",a,b,mult);
return 0;
}
运行后,高不对,面积为0
把scanf里的,去掉就变成对的了,不过这是为什么?

我找到问题了,不过还是谢谢大家!!

第1个回答  2013-09-15
mult=a*b*(1/2);

        把上面的公式里面的 1/2 直接改成 0.5 

mult=a*b*(0.5);

 你的两个数字的中间的逗号,是不是全角的??

第2个回答  2013-09-15
错误在这:mult=a*b*(1/2);
可以改成mult=a*b*(1.0/2);试试
因为1是int型,2也是int型,1/2结果也是int型,即0
第3个回答  2013-09-15
mult=a*b/2;//这样就好了,不过我还没想通为什么有括号不行追问

试过了,不行,高和结果还是出错

追答

输入的两个数之间用逗号,比如:
2,3(回车)
好吧原来你重新补充了问题。。。scanf里面%d和%d之间如果有逗号,你输入的时候也要用逗号隔开,如果scanf里写的是用星号隔开,那你输入数字的时候也用星号隔开,格式要统一。你自己的第一个printf里面都有提醒过啊。

第4个回答  2013-09-15
1/2应该改成1.0/2.0,整数除以整数的到的还是整数
第5个回答  2013-09-15
把1/2 改成0.5本回答被提问者采纳
相似回答