c语言编程改错8.11

程序的功能是:在主函数中输入三角形的三个边长,如果边长合理,则调用自定义函数求出三角形面积;如果边长不合理,则重新输入三个边长直至合理。程序中有4处错误,请修改并调试程序... 程序的功能是:在主函数中输入三角形的三个边长,如果边长合理,则调用自定义函数求出三角形面积;如果边长不合理,则重新输入三个边长直至合理。程序中有4处错误,请修改并调试程序。
#include <stdio.h>
#include <math.h>
main() //1
{ //2
float a,b,c;
printf("请输入三角形的三个边长值:\n"); //3
scanf("%f%f%f",&a,&b,&c);//4
while((a+b>c&&a+c>b&&b+c>a))//5
{printf("不能构成一个三角形!\n");//6
printf("请重新输入三角形的三个边长值:\n");//7
scanf("%f%f%f",&a,&b,&c);//8
}
printf("Area=%f\n",area(float a,float b,float c)); //9
}
area(float a,float b,float c) //10
{float s,area_s; //11
s=(a+b+c)/2.0; //12
area_s=sqrt(s*(s-a)*(s-b)*(s-c));//13
return area_s;//14
}
展开
 我来答
孙毅超100
2014-05-13 · TA获得超过356个赞
知道小有建树答主
回答量:99
采纳率:0%
帮助的人:79.2万
展开全部
#include <stdio.h>
#include <math.h>
float area(float a,float b,float c); //当子函数不在main函数之前的时候,这里要有函数声明~
main()                      //1
{ //2
float a,b,c;
printf("请输入三角形的三个边长值:\n"); //3
scanf("%f%f%f",&a,&b,&c);//4
while(!(a+b>c&&a+c>b&&b+c>a))//5  //这里应该加个非,因为原先的条件是判断能够成为三角形,要将它变为不是三角形的时候执行~楼上说的有误!!
{printf("不能构成一个三角形!\n");//6
printf("请重新输入三角形的三个边长值:\n");//7
scanf("%f%f%f",&a,&b,&c);//8
}
printf("Area=%f\n",area(a,b,c)); //9 //调用子函数不用加参数类型~
}
float area(float a,float b,float c)   //10 //子函数应该有返回类型~
{float s,area_s; //11
s=(a+b+c)/2.0; //12
area_s=sqrt(s*(s-a)*(s-b)*(s-c));//13
return area_s;//14
}
时光轨车永不停息
2014-05-13 · TA获得超过3268个赞
知道大有可为答主
回答量:2204
采纳率:55%
帮助的人:789万
展开全部
#include <stdio.h>
#include <math.h>
main() //1
{ //2
float a,b,c;
float area(float a,float b,float c);//这里原本没有声明area这个函数
printf("请输入三角形的三个边长值:\n"); //3
scanf("%f%f%f",&a,&b,&c);//4
while((a+b>c&&a+c>b&&b+c>a))//5
{printf("不能构成一个三角形!\n");//6
printf("请重新输入三角形的三个边长值:\n");//7
scanf("%f%f%f",&a,&b,&c);//8
}
printf("Area=%f\n",area(a,b,c)); //9这里不要加变量说明符
}
float area(float a,float b,float c) //10
{float s,area_s; //11
s=(a+b+c)/2.0; //12
area_s=sqrt(s*(s-a)*(s-b)*(s-c));//13
return area_s;//14
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
snowland
2014-05-13 · 知道合伙人软件行家
snowland
知道合伙人软件行家
采纳数:1229 获赞数:7314
多次参加C++算法类竞赛获奖。

向TA提问 私信TA
展开全部
2.
没有函数声明
应添加 float area(float ,float ,float );
5.
应该是或(||),而不是与(&&)
改成while((a+b>c||a+c>b||b+c>a))

9.

函数调用不要加类型。
改成printf("Area=%f\n",area(a,b,c));

10.
函数定义没有写返回值类型
改成float area(float a,float b,float c)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
狂生凌
2014-05-13 · TA获得超过115个赞
知道小有建树答主
回答量:100
采纳率:100%
帮助的人:51.8万
展开全部
#include <stdio.h>
#include <math.h>
int main() //1
{ //2
float area(float a1,float b1,float c1);
float a,b,c;
printf("请输入三角形的三个边长值:\n"); //3
scanf("%f%f%f",&a,&b,&c);//4
while((a+b<c||a+c<b||b+c<a))//5
{printf("不能构成一个三角形!\n");//6
printf("请重新输入三角形的三个边长值:\n");//7
scanf("%f%f%f",&a,&b,&c);//8
}
printf("Area=%f\n",area(a,b,c)); //9
}

float area(float a1,float b1,float c1) //10
{
float s,area_s; //11
s=(a1+b1+c1)/2.0; //12

area_s=sqrt(s*(s-a1)*(s-b1)*(s-c1));//13

return area_s;//14
}
//你的很多错误!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式