|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
是一个用海伦公式求面积的练习
代码如下:
#include<stdio.h>
#include<math.h>
int helen(int a,int b,int c);
int main()
{
int a,b,c;
float area;
printf("请输入三角形的三边长:\n");
scanf("%d %d %d",&a,&b,&c);
area=helen(a,b,c);
printf("面积为%.2f",area);
return 0;
}
float helen(int a,int b,int c)
{
float p;
float area;
p=(a+b+c)/2.0;
if(p*(p-a)*(p-b)*(p-c)<0)
{
printf("Error!\n");
}
area=sqrt(p*(p-a)*(p-b)*(p-c));
return (area);
}
没有error,但是有5个warning
D:\2020136430602.c(14) : warning C4244: '=' : conversion from 'int ' to 'float ', possible loss of data
D:\2020136430602.c(20) : warning C4142: benign redefinition of type
D:\2020136430602.c(23) : warning C4244: '=' : conversion from 'double ' to 'float ', possible loss of data
D:\2020136430602.c(28) : warning C4244: '=' : conversion from 'double ' to 'float ', possible loss of data
D:\2020136430602.c(29) : warning C4244: 'return' : conversion from 'float ' to 'int ', possible loss of data
算出来的数据好像也不是很对。。。
其他的我可以慢慢解决,但是这个第五个warning我百思不得其解,为什么这个return没有返回float的值呢?
小弟求教各路大神了! |
|