输入三解形的三条边a,b,c,判断它们能否构成三角形,
若能构成三角形,指出是何等三角形(等腰三角形、直角三角形、一般三角形)。#include<stdio.h>intmain(){inta,b,c;printf("请输入三边...
若能构成三角形,指出是何等三角形(等腰三角形、直角三角形、一般三角形)。
#include<stdio.h>
int main()
{
int a,b,c;
printf("请输入三边");
scanf("%d%d%d",&a,&b,&c);
if(a+b>c && a+c>b && b+c>a)
{if(a==b ||a==c ||b==c)
{
if(a*a+b*b==c*c ||a*a+c*c==b*b ||b*b+c*c==a*a)
printf("等腰直角三角形");
else
printf("等腰三角形");}
else if(a*a+b*b==c*c ||a*a+c*c==b*b ||b*b+c*c==a*a)
printf("直角三角形");
else
printf("一般三角行");
}
else
printf("不能构成三角形");
return 0;
}
哪里错了 展开
#include<stdio.h>
int main()
{
int a,b,c;
printf("请输入三边");
scanf("%d%d%d",&a,&b,&c);
if(a+b>c && a+c>b && b+c>a)
{if(a==b ||a==c ||b==c)
{
if(a*a+b*b==c*c ||a*a+c*c==b*b ||b*b+c*c==a*a)
printf("等腰直角三角形");
else
printf("等腰三角形");}
else if(a*a+b*b==c*c ||a*a+c*c==b*b ||b*b+c*c==a*a)
printf("直角三角形");
else
printf("一般三角行");
}
else
printf("不能构成三角形");
return 0;
}
哪里错了 展开
4个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
typedef int boolean;
#define TRUE 1
#define FALSE 0
//判断能否构成三角形函数
boolean isTriangle(double x,double y,double z)
{
//思路:任意两边之和大于第三边才能构成三角形
//或者是任意两边之差的绝对值小于第三边
if(x<=0 || y<=0 || z<=0)
{
printf("Input data error!\n");
exit(-1);
}
if(x+y>z && x+z>y && y+z>x)
return TRUE;
else
return FALSE;
}
int main()
{
double a,b,c;
printf("输入三角形三边a,b,c: ");
scanf("%lf %lf %lf",&a,&b,&c);
if(isTriangle(a,b,c) == TRUE)
printf("(%.2f,%.2f,%.2f)可以构成三角形.\n",a,b,c);
else
printf("(%.2f,%.2f,%.2f)无法构成三角形.\n",a,b,c);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没看出有什么问题,你遇到了什么样的报错?还是输入了测试数据但是测试结果和预计的不一样?
更多追问追答
追问
测试 的时候始终 是不能构成
追答
呃……请截个图来看看,因为我这里测试是没问题的
我反应过来了,你输入的测试数据是用逗号隔开的吧?你试试用空格隔开就OK了,这个和你写的scanf有关
scanf("%d%d%d",&a,&b,&c);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有错吧,你哪组测试数据出错了?
实际上3个整数不可能组成等腰直角三角形
但是你的程序应该没有问题
难道应该读入浮点数?
实际上3个整数不可能组成等腰直角三角形
但是你的程序应该没有问题
难道应该读入浮点数?
追问
测试 的时候始终 是不能构成
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
逻辑是合适的 程序好像也没问题啊
追问
就是没问题 但是显示的是 始终是不能构成三角形
追答
if((a+b>c)&&(a+c>b)&&(b+c>a))这样试试 按你说的应该是没有进入if语句
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询