#include <stdio.h> main() { int a,b,c; printf("请输入三个边长:\n"); scanf("%d %d %d",&a,&b,&c); if 20

#include<stdio.h>main(){inta,b,c;printf("请输入三个边长:\n");scanf("%d%d%d",&a,&b,&c);if(a+b... #include <stdio.h>
main()
{
int a,b,c;
printf("请输入三个边长:\n");
scanf("%d %d %d",&a,&b,&c);
if(a+b>c && a+c>b && b+c>a)
if(a*a==b*b+c*c || b*b==a*a+c*c || c*c==a*a+b*b)
printf("直角三角形。\n");
else if(a==b && a==c)
printf("等边三角形。\n");
else if(a==b||b==c||a==c)
printf("等腰三角形。\n");
else if(a+b<c && a+c<b && b+c<a)
printf("不能构成三角形。\n");

}

就是这个程序,输入三边来判断是何种三角形,等边、等腰、直角都可以判断出来,只有输入不构成三角形三边的时候,不会打出“不构成三角形”,也不知道是什么问题,急求答案啊!
展开
 我来答
Dheng_Liu
2011-04-23 · TA获得超过181个赞
知道小有建树答主
回答量:162
采纳率:0%
帮助的人:74.8万
展开全部
我把你的程序改了一些,这样就可以了。

#include <stdio.h>
main()
{
int a,b,c;
printf("请输入三个边长:\n");
scanf("%d %d %d",&a,&b,&c);
if(a+b>c && a+c>b && b+c>a){
if(a*a==b*b+c*c || b*b==a*a+c*c || c*c==a*a+b*b)
{printf("直角三角形。\n");}
else if(a==b && a==c)
{printf("等边三角形。\n");}

else if(a==b||b==c||a==c)
{printf("等腰三角形。\n");}
}
else
{printf("不能构成三角形。\n");}

}

如果你是初学者的话,记得保持良好的编程习惯,让代码看起来非常清晰。不然等不到别人来找你程序的BUG,你自己就先乱了。
pyz1989
2011-04-23 · TA获得超过151个赞
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:85.2万
展开全部
&& 应该替换为 ||
同时你应该知道if判断条件应该相反
#include <stdio.h>
int main(void)
{
int a,b,c;
printf("请输入三个边长:\n");
scanf("%d %d %d",&a,&b,&c);
if(a+b>c && a+c>b && b+c>a)
//if判断条件应该相反,下面的if和else if均为第一个if条件的子集
{
if(a*a==b*b+c*c || b*b==a*a+c*c || c*c==a*a+b*b)
printf("直角三角形。\n");
else if(a==b && a==c)
printf("等边三角形。\n");
else if(a==b||b==c||a==c)
printf("等腰三角形。\n");
}
else printf("不能构成三角形。\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fmzsdwy
2011-04-23 · TA获得超过161个赞
知道答主
回答量:85
采纳率:0%
帮助的人:84.5万
展开全部
把else if(a+b<c && a+c<b && b+c<a)
改成else if(a+b<=c || a+c<=b || b+c<=a)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
度钱钱04
2011-04-23
知道答主
回答量:28
采纳率:0%
帮助的人:0
展开全部
21
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式