偶然看到的一道题,挺有意思,感觉能拿来作为第一次发博客的内容
问题:小明在森林里捡到了n根木棍,小明想要选出其中三根作为三角形的三条边,从而组成一个三角形。问可以组成的三角形中周长最大的是多少?
输入:
第一行一个数字n(木棍根数)
第二行n个数字(分别代表木棍的长度)
输出:
一个数字,表示最大周长。
样例输入
7
2 6 2 5 4 15 1
输出
15
#include<string.h>
#include<stdio.h>
int main()
{
int length[100],t;
int i,j,num,C; //C为周长
scanf("%d",&num);
for(i=0;i<num;i++)
scanf("%d",&length[i]); //循环取数字进数组length中;
for(j=0;j<num-1;j++) //重点!!!要看懂!!!这嵌套循环是用冒泡法将数组中较大的元素调到后面去形成有序数组,方便后面调用
{
for(i=0;i<num-i-1;i++)
if(length[i]>length[i+1])
{
t=length[i];
length[i+1]=t;
length[i]=t;
}
}
for(i=num;i>0;i–)
{
if((length[i]-length[i-1])<length[i-2])
{
C=length[i]+length[i-1]+length[i-2];
printf("%d",C);
break; //从最大的三个数开始相加求和,if语句是判断这三个数是否构成一个三角形
}
}
}