2562 相似三角形

本文介绍了一种算法,用于判断两组三角形边长数据是否能构成相似三角形。通过输入六组整数,分别代表两个三角形的边长,算法会检查这些边长是否能构成有效的三角形,并判断它们是否相似。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

给出两个三角形的三条边,判断是否相似。
input:
多组数据,给出6正个整数,a1,b1,c1,a2,b2,c2,分别代表两个三角形。(边长小于100且无序)
output:
如果相似输出YES,如果不相似输出NO,如果三边组不成三角形也输出NO。

#include<stdio.h>
int main()
{
int a[3],b[3],c,w,j1,j2,s,a1,a2,a3,b1,b2,b3;
int range(int(p[3]),int(q[3]));
int judge(int(x),int(y),int(z));
int max(int(v1),int(v2),int(v3));
int mid(int(u1),int(u2),int(u3));
int min(int(k1),int(k2),int(k3));
int similar(double(x1),double(y1),double(z1),double(x2),double(y2),double(z2));
while(scanf("%d %d %d %d %d %d",&a[0],&a[1],&a[2],&b[0],&b[1],&b[2])!=EOF)
{
if(range(a,b))
{
j1=judge(a[0],a[1],a[2]);
j2=judge(b[0],b[1],b[2]);
if(j1&&j2)
{
a1=max(a[0],a[1],a[2]);b1=max(b[0],b[1],b[2]);
a2=mid(a[0],a[1],a[2]);b2=mid(b[0],b[1],b[2]);
a3=min(a[0],a[1],a[2]);b3=min(b[0],b[1],b[2]);
if(similar(a1,a2,a3,b1,b2,b3))printf("YES\n");
else printf("NO\n");
}
else printf("NO\n");
}
else printf("NO\n");
}
return 0;
}

int range(int(p[3]),int(q[3]))
{
int i;
for(i=0;i<3;i++)
{
if(p[i]<100&&q[i]<100)return(1);
else return(0);
break;
}
}

int judge(int(x),int(y),int(z))
{
if(x+y>z&&x+z>y&&y+z>x)return(1);
else return(0);
}     

int max(int(v1),int(v2),int(v3))
{
int max;
max=v1>v2?(v1>v3?v1:v3):(v2>v3?v2:v3);
return(max);
}                                

int mid(int(u1),int(u2),int(u3))
{
int mid;
mid=u1>u2?(u2>u3?u2:(u1>u3?u3:u1)):(u1>u3?u1:(u2>u3?u3:u2));
return(mid);
}

int min(int(k1),int(k2),int(k3))
{
int min;
min=k1>k2?(k2>k3?k3:k2):(k1>k3?k3:k1);
return(min);
}
  
int similar(double(x1),double(y1),double(z1),double(x2),double(y2),double(z2))
{
if(x2/x1==y2/y1&&x2/x1==z2/z1)return(1);
else return(0);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值