N根棍子选三根作为三角形三条边(使三角形周长最大)

三角形:任意两边之和大于第三边

#include<stdlib.h>

#include<iostream>
using namespace std;
typedef int datatype;
int judge(datatype a,datatype b,datatype c)
{
if(a+b>c&&a+c>b&&b+c>a)
return 1;
return 0;
}
void Cmaxtriangle(int n)
{
  int i,j,k;
  int x,y,z;
  int p=0;
  datatype sum;
  datatype max=0;
  datatype a[n];
  cout<<"input"<<' '<<n<<' '<<"number:";
  for(i=0;i<n;i++)
  {
    cin>>a[i];  
  }
  for(i=0;i<n;i++)
    for(j=i+1;j<n;j++)
      for(k=j+1;k<n;k++)
      {
      if(judge(a[i],a[j],a[k]))
      {
      p++;
      sum=a[i]+a[j]+a[k];
      if(sum>max)
      {
      max=sum;
      x=i;
      y=j;
      z=k;
   }
   cout<<sum<<' ';
   }
   if(p%5==0)
cout<<endl;
 }
 cout<<endl;
 cout<<a[x]<<' '<<a[y]<<' '<<a[z]<<endl;
 cout<<"the max is"<<' '<<max<<endl;
}
int main()
{
int num;
cout<<"输入棍子数:";
cin>>num;
Cmaxtriangle(num);
system("pause");
return 0;
}

猜你喜欢

转载自blog.csdn.net/fight_snail/article/details/80518362