求大佬帮忙看一道c语言编程题 20

判断给定的多组数据是否为相似三角形,代码我写出来运行是正确的,但是不给通过老是WA,下面是我的代码#include<stdio.h>intmain(){inta1,a2,... 判断给定的多组数据是否为相似三角形,代码我写出来运行是正确的,但是不给通过老是WA,下面是我的代码#include <stdio.h>int main(){ int a1,a2,a3,b1,b2,b3; while(scanf("%d %d %d %d %d %d",&a1,&a2,&a3,&b1,&b2,&b3)!=EOF){ if(a1>=a2){ int temp=0; temp=a1; a1=a2; a2=temp; } if(a2>=a3){ int temp=0; temp=a2; a2=a3; a3=temp; } if(a1>=a3){ int temp=0; temp=a1; a1=a3; a3=temp; } if(b1>=b2){ int temp=0; temp=b1; b1=b2; b2=temp; } if(b2>=b3){ int temp=0; temp=b2; b2=b3; b3=temp; } if(b1>b3){ int temp=0; temp=b1; b1=b3; b3=temp; } if((a1+a2<=a3)||(b1+b2<=b3)){ printf("NO\n"); } else{ double judge1=0,judge2=0,judge3=0; judge1=1.0*a1/b1; judge2=1.0*a2/b2; judge3=1.0*a3/b3; if((judge1==judge2)&&(judge2==judge3)&&(judge1==judge3)) printf("YES\n"); else printf("NO\n"); } } } 展开
 我来答
xoaxa
2020-08-11 · TA获得超过8610个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3488万
展开全部

#include <stdio.h>

#include <math.h>


void sort(double a[],int n) {

int i,j,k;

double t;

for(i = 0; i < n - 1; ++i) {

k = i;

for(j = i + 1; j < n; ++j) {

if(a[k] > a[j]) k = j;

}

if (k != i) {

t = a[i];

a[i] = a[k];

a[k] = t;

}

}

}


int main() {

double a[3],b[3],eps = 1E-6;

double judge1,judge2,judge3;

double dif1,dif2,dif3;

while(scanf("%lf%lf%lf%lf%lf%lf",&a[0],&a[1],&a[2],&b[0],&b[1],&b[2]) == 6) {

sort(a,3);

sort(b,3);

if((a[0] + a[1] <= a[2]) || (a[1] + a[2] <= a[0]) || (a[2] + a[0] <= a[1])) printf("A_NO\n");

if((b[0] + b[1] <= b[2]) || (b[1] + b[2] <= b[0]) || (b[2] + b[0] <= b[1])) printf("B_NO\n");

else {

judge1 = a[0]/b[0];

judge2 = a[1]/b[1];

judge3 = a[2]/b[2];

dif1 = judge1 - judge2;

dif2 = judge2 - judge3;

dif3 = judge3 - judge1;

if((fabs(dif1) <= eps) && (fabs(dif2) <= eps) && (fabs(dif3) <= eps)) printf("YES\n");

else printf("NO\n");

}

return 0;

}

拾言君
2020-08-11 · 世界纷乱嘈杂,安静的故事讲给你听
拾言君
采纳数:2 获赞数:22

向TA提问 私信TA
展开全部
你好像没有考虑啊a,b,c三边是否能构成三角形
追问
(a1+a2<=a3)||(b1+b2<=b3)我用这句两边之和如果小于等于第三边来判断是否构成三角形(前面已经排好序)不是的话输出NO,然后else里面再用对应成比例判断是否相似
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2020-08-10
展开全部
展开全部
你写的Num函数无论升序还是降序都不能正确插入。给你写一个做参考——
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdio.h"
void Num(int *a, int n, int x){
int i,k;
k = *a>*(a+n-1) ? 1 : 0;
for(i=n;i>0;i--){
*(a+i)=*(a+i-1);
if(k==1 ? x<=*(a+i) : x>=*(a+i))
break;
}
*(a+i)=x;
}
int main(int argc,char *argv[]){
int a[100],n,x,i;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
scanf("%d",&x);
Num(a,n,x);
for(i=0;i<n+1;i++)
printf("%d ",a[i]);//这里有改
printf("\n");//加这一句
return 0;
}
运行样例:
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式