主题:C语言习题, 求解
lh19921016
[专家分:0] 发布于 2011-12-19 13:40:00
下列程序的功能为:求三角形面积,请纠正程序中存在的错误,使程序实现其功能,程序以文件名sy7_2.c存盘。
#include "math.h"
#include "stdio.h"
area(float,float,float);
void main()
{
float a,b,c;
printf("请输入三角形的三个边长值:\n");
scanf("%f,%f,%f",a,b,c);
if(a+b>c&&a+c>b&&b+c>a)
printf("Area=%f\n",area(a,b,c));
}
area(float a,float b,float c)
{
float s,area_s;
s=(a+b+c)/2.0;
area_s=sqrt(s*(s-a)*(s-b)*(s-c));
return(area_s);
}
请给出正确的程序:
回复列表 (共3个回复)
沙发
qq312448494 [专家分:0] 发布于 2011-12-19 21:35:00
下列程序的功能为:求三角形面积,请纠正程序中存在的错误,使程序实现其功能,程序以文件名sy7_2.c存盘。
#include "math.h"
#include "stdio.h"
area(float,float,float);
void main()
{
float a,b,c;
printf("请输入三角形的三个边长值:\n");
scanf("%f,%f,%f",a,b,c);
if(a+b>c&&a+c>b&&b+c>a)
printf("Area=%f\n",area(a,b,c));
}
area(float a,float b,float c)
{
float s,area_s;
s=(a+b+c)/2.0;
area_s=sqrt(s*(s-a)*(s-b)*(s-c));
return(area_s);
}
请给出正确的程序:
#include "math.h"
#include "stdio.h"
float area(float,float,float);
void main()
{
float a,b,c;
printf("请输入三角形的三个边长值:\n");
scanf("%f,%f,%f",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
printf("Area=%f\n",area(a,b,c));
}
float area (float a,float b,float c)
{
float s,area_s;
s=(a+b+c)/2.0;
area_s=sqrt(s*(s-a)*(s-b)*(s-c));
return(area_s);
}
板凳
zhangyongshun07@qq.c [专家分:0] 发布于 2011-12-20 11:12:00
#include <math.h>
#include <stdio.h>
double area(float,float,float);
int main()
{
float a,b,c;
printf("请输入三角形的三个边长值:\n");
scanf("%f%f%f",&a,&b,&c);
if ((a+b>c)&&(a+c>b)&&(c+b>a)&&(a-b<c)&&(a-c<b)&&(c-b<a))
printf("Area=%f\n",area(a,b,c));
else
printf("can't construct a triangle\n");
return 0;
}
double area(float a,float b,float c)
{
double s,area_s;
s=(a+b+c)/2.0;
area_s=sqrt(s*(s-a)*(s-b)*(s-c));
return(area_s);
}
兄弟 scanf函数你使用的格式不正确 还有就是三角形的判断还缺少点条件啊?程序最好能添个else语句,这样能够给你提示。
3 楼
编者无敌 [专家分:30] 发布于 2011-12-22 15:51:00
您好:
其实出现(a+b>c)&&(a+c>b)&&(c+b>a)就不用(a-b<c)&&(a-c<b)&&(c-b<a)
可以加上if(a<=0||b<=0||c<=0) printf("Please input the number of greater than zero ");
我来回复