c语言:从一组数据中选出可以组成三角形并且周长最长的三个数(简单)
题目如下:
思路分析:
写出完整的程序:
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 }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。