题目如下:
思路分析:
写出完整的程序:
1 /*
2 问题描述:
3 有n根棍子,棍子i的长度为ai。想要从中选出3根棍子组成周长尽可能长的三角形。请输
4 出最大的周长,若无法组成三角形则输出0。
5 */
6
7 #include<stdio.h>
8 #include<Stdlib.h>
9 #define MAX 1000
10 int max(int a,int b){//得出两个数中最大的那个
11 if(a>b)
12 return a;
13 else
14 return b;
15 }
16 int main(){
17 int n,ans=0;//n是数字数目,ans是最后的最长答案
18 printf("输入n:");
19 scanf("%d",&n);//获取要判断的数目
20 int a[MAX];
21 printf("输入%d个数:\n",n);
22 for(int m=0;m<n;m++)
23 {
24 scanf("%d",&a[m]);//循环输入要判断的数
25 }
26 int i,j,k;
27 //让i<j<k,这样不会重复选中
28 for(i=0;i<n;i++)
29 for(j=i+1;j<n;j++)
30 for(k=j+1;k<n;k++)
31 {
32 int len=a[i]+a[j]+a[k];//周长
33 if((a[i]+a[j]>a[k])&&(a[j]+a[k]>a[i])&&(a[i]+a[k]>a[j]))
34 {
35 ans=max(len,ans); //替换答案
36 }
37 }
38 printf("最终最长的周长:%d\n",ans);
39
40 system("pause");
41 return 0;
42
43 }
时间: 2024-11-05 14:39:39