題目如下:
思路分析:
寫出完整的程序:
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 }