角形"/>
C语言:选出3根棍子组成周长尽可能长的三角形
题目描述:
有n棍棍子,棍子i的长度为ai,想要从中选出3根棍子组成周长尽可能长的三角形。请输出最大的周长,若无法组成三角形则输出0。
算法分析:
选择3根棍子,它们能组成三角形的充要条件为:最长棍子的长度<其余两根棍子的长度之和。所以我们可以先用三重循环枚举所有的棍子选择方案,再利用条件判断是否能组成三角形。
#include<stdio.h>
int main()
{int max(int x,int y);int ans=0;int n,a[100];printf("please enter n:");scanf("%d",&n);printf("please inputs 10 numbers:");for(int m=0;m<n;m++)scanf("%d",&a[m]);for(int i=0;i<n;i++)for(int j=i+1;j<n;j++)for(int k=j+1;k<n;k++){int l=a[i]+a[j]+a[k];//周长int m=max(a[i],max(a[j],a[k]));//最长棍子的长度int r=l-m;//其余两根棍子的长度之和//判断是否可以组长三角形if(m<r){ans=max(ans,l);}}printf("%d",ans);return 0;} //调用函数求俩者中的最大值 int max(int x,int y){return (x>y?x:y);}
运行结果:
please enter n:5
please inputs 5 numbers:2 3 4 5 10
12
更多推荐
C语言:选出3根棍子组成周长尽可能长的三角形
发布评论