永发信息网

c语言判断三角型

答案:3  悬赏:20  手机版
解决时间 2021-07-17 11:46
  • 提问者网友:ミ烙印ゝ
  • 2021-07-17 03:45

#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c;
printf("please input a,b,c:");
scanf("%d%d%d",&a,&b,&c);
if(a>0&&b>0&&c>0&&a<=b<=c)
{
if(a*a+b*b==c*c)
{
if(a==b)
printf("等腰三角形");
else printf("直角三角形");
}
else if("a==b||a==c")
{
if(b==c)
printf("等边三角形");
else printf("等腰三角形");
}
else printf("一般三角形");
}
else printf("不能够成三角形");

return 0;
}
不知道问题出在哪,有更好的赐教。

最佳答案
  • 五星知识达人网友:从此江山别
  • 2021-07-17 04:21
错很多!!
全部回答
  • 1楼网友:杯酒困英雄
  • 2021-07-17 06:50

呵呵。。值得表扬!!我也是个初学者。你的程序有几个问题,楼上说的很好了!scanf("%d%d%d",&a,&b,&c); 改为改成: scanf("%lf%lf%lf",&a,&b,&c); a<=b<=c不能这么写改为a<=b&&b<=c.帮你改下:

#include<stdio.h> #include<math.h> int main() { double a,b,c; printf("please input a,b,c:"); scanf("%lf%lf%lf",&a,&b,&c); if(a>0&&b>0&&c>0&&a+b>c) { if(a==b) { if(a*a+b*b==c) printf("等腰直角三角形"); else if(a==b&&b==c) printf("等边三角形"); else printf("一般等腰三角形"); } else { if(a*a+b*b==c) printf("一般直角三角形"); else printf("一般三角形"); } } else printf("不能够成三角形"); return 0; }

你的程序有个不好的地方,就是你输入的三边固定了a,b,c的大小顺序。前面应该加点东西,把任意输入3个数最大值赋予c,最小值赋予a。这样就可以任意输入了。

  • 2楼网友:逃夭
  • 2021-07-17 05:32

问题出在scanf("%d%d%d",&a,&b,&c); 这句..

double a,b,c; 输入输出格式是%lf; %d是int的输入输出格式. 改成: scanf("%lf%lf%lf",&a,&b,&c);

另外判断能否构成三角形的条件有问题.

我记得条件是任意两边之和大于第三边,两边之差小于第三边.

********************************************************************************************

稍微做了点修改. 你参考下:

#include<stdio.h> #include<math.h> int main() { double a,b,c; printf("please input a,b,c:"); scanf("%lf%lf%lf",&a,&b,&c); if(a+b>c&&a+c>b&&b+c>a) { if(a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c=a*a) { printf("直角三角形"); } else if(a==b||a==c) { if(b==c) printf("等边三角形"); else printf("等腰三角形"); } else printf("一般三角形"); } else printf("不能够成三角形"); return 0; }

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯