有没有代码大神帮忙解决一下c语言的问题,直接上答案,谢谢(c++)
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
1个回答
展开全部
【解题思路】
三角形这道题,有几个关键点:
1.必须先对两个三角形的三个边进行排序,这样才好求比例,不会造成混乱。
2.必须判断两个三角形的三个边能否构成三角形,也就是说,大边不能大于等于两个小边的和。比如1,2,3是构不成一个三角形的。
3.用三边判断三角形相似时,由于比值可能不是整数倍,所以必须使用小数进行比较。比如14,21,28和6,9,12这两个明显就是相似三角形,但它们的比分化例值是7分之3,不是整数,所以在编程中需要用小数进行比较,否则会出错。
明确了这三个关键点,程序就很好写了,代码如下:
【程序代码】
#include <iostream>
#include <stdio.h>
int main()
{int a,b,c,a1,b1,c1,T,n; //三角形边长和T
scanf("%d",&T); //输入组数T
for(;T>0;T--) //根据T决定输几组数
{scanf("%d%d%d",&a,&b,&c); //输入第一组数
if(b<a) {n=b;b=a;a=n;}; //如果b小于a,则b和a对调
if(b>c) {n=b;b=c;c=n;}; //如果b大于c,则b和c对调
if(b<a) {n=b;b=a;a=n;}; //如果b小于a,则b和a对调
scanf("%d%d%d",&a1,&b1,&c1); //输入第二组数
if(b1<a1) {n=b1;b1=a1;a1=n;}; //如果b1小于a1,则b1和a1对调
if(b1>c1) {n=b1;b1=c1;c1=n;}; //如果b1大于c1,则b1和c1对调
if(b1<a1) {n=b1;b1=a1;a1=n;}; //如果b1小于a1,则b1和a1对调
if(c>=a+b||c1>=a1+b1) //判断两组数是否符合三角形三边
{printf("三个边构不成三角形\n"); //输出提示信息
continue;} //输入下一组数据
if((double)a/a1==(double)b/b1&(double)a/a1==(double)c/c1)
printf("yes!\n"); //如果三边比相等显示YES
else printf("no!\n"); //否则显示NO
} //结束for循环
system("PAUSE"); //暂停屏幕,以看清结果
return 0;} //结束程序
至于第二题,那就是输出绝对值,也就是说不管9还是-9,最后的距离都是9。具体代码我就不贴了,如果不明白,可以加我QQ20428920问。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询