一道C语言编程题,求解答并且说明错误原因!! 50

编程题:编程实现:从键盘输入三角形的三条边长,判断这三条边是否能构成三角形,如不能打印“不构成三角形”,如能,请判断该三角形是什么类型的三角形?提示:程序只要能根据输入判... 编程题:编程实现:从键盘输入三角形的三条边长,判断这三条边是否能构成三角形,如不能打印“不构成三角形”,如能,请判断该三角形是什么类型的三角形?提示:程序只要能根据输入判断并打印出:不构成三角形、等边三角形、等腰三角形、直角三角形、普通三角形五种情况即可。另外,三条边长度可以是小数。要求:必须使用if …else if…else if…else…多分支结构实现。 输入格式:3 4 5 输出格式:直角三角形 展开
 我来答
杯具——悲剧69779c
2019-10-25 · TA获得超过1352个赞
知道大有可为答主
回答量:3003
采纳率:64%
帮助的人:511万
展开全部
//一道C语言编程题,求解答并且说明错误原因!! 50
//编程题:编程实现:从键盘输入三角形的三条边长,判断这三条边是否能构成三角形,如不能打印“不构成三角形”,如能,请判断该三角形是什么类型的三角形?
//提示:程序只要能根据输入判断并打印出:不构成三角形、等边三角形、等腰三角形、直角三角形、普通三角形五种情况即可。另外,三条边长度可以是小数。
//要求:必须使用if …else if…else if…else…多分支结构实现。
//输入格式:3 4 5
//输出格式:直角三角形

#include <stdio.h>
#include <stdlib.h>

int canBe(double a, double b, double c) {
if (a + b > c || a + c > b || b + c > a) {//判断可以构成三角形
return 1;
} else {
return 0;
}
}

int main() {
printf("input three number");
double a, b, c;
scanf("%lf %lf %lf", &a, &b, &c);//接收三个边长
if (canBe(a, b, c) == 1) {//如果能构成三角形
if (a == b == c) {//等边条件
printf("等边三角形");
} else if (a == b || b == c || a == c) {
printf("等腰三角形");//等腰条件
} else if (a * a + b * b == c * c) {
printf("直角三角形");//直角条件
} else {
printf("普通三角形");//都不符合
}
} else {
printf("不构成三角形");//如果不能构成三角形
exit(0);
}
}
中兵勘察海外部

2019-10-25 · TA获得超过7760个赞
知道大有可为答主
回答量:3.7万
采纳率:73%
帮助的人:1732万
展开全部
所以,其实语言不重要了,重要的是对数学的理解了。
等边,三个数一样大,
直角,不用说了吧
等腰,两边一样大,
两边合计大于第三边是三角,
这有个顺序不。等腰直角三角型也是有的,
不是要给写完整的代码吧……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
总该有办法吧
2019-10-25 · TA获得超过227个赞
知道小有建树答主
回答量:222
采纳率:93%
帮助的人:144万
展开全部
#include <stdio.h>
#include <string.h>
main(){
float a,b,c;
printf("请输入三角形3条边的长度,用空格分隔:");
scanf("%f %f %f",&a,&b,&c);
printf("[%.2f,%.2f,%.2f]\n",a,b,c);
if(a+b<=c || a+c<=b || b+c<=a){
printf("\n不构成三角形\n");
}
else if(a==b&&b==c){
printf("\n等边三角形\n");
}
else if(a==b||b==c||a==c){
printf("\n等腰三角形\n");
}
else if(
a*a+b*b==c*c||
a*a+c*c==b*b||
c*c+b*b==a*a){
printf("\n直角三角形\n");
}
else{
printf("\n普通三角形\n");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

2019-10-25 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

#include <stdio.h>

#include <math.h>

int main()

{ double a,b,c,t; 

  scanf("%lf%lf%lf",&a,&b,&c);

  if(a<b){t=a;a=b;b=t;}

  if(a<c){t=a;a=c;c=t;}

  if(a>=b+c)printf("不构成三角形");

    else if(a==b&&b==c)printf("等边三角形");

      else if(a==b||b==c||a==c)printf("等腰三角形");

        else if(fabs(a*a-(b*b+c*c))<1e-8)printf("直角三角形");

          else printf("普通三角形");

  return 0;

}

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飞利浦800
2019-10-25 · 贡献了超过208个回答
知道答主
回答量:208
采纳率:0%
帮助的人:4.6万
展开全部
不知道怎么办?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式