题目:给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回 0。
#输出示例
输入:[2,1,2]
输出:5
输入:[1,5,1]
输出:0
输入:[3,2,3,4]
输出:10
输入:[3,6,2,3]
输出:8
#include <iostream>
using namespace std;
#define M 10
int isTraight(int a,int b,int c)
{
if(a+b<=c||a+c<=b||b+c<=a)
return 0;
else
return 1;
}
int main()
{
char s;
int num;
int a[M],n=0;//n是计算输入的数字个数
cout<<"输入:";
cin>>s;
for(int i=0;s!=']';i++){
cin>>num;
a[i]=num;
n++;
cin>>s;
}
int max=0;
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
for(int k=j+1;k<n;k++){
if(isTraight(a[i], a[j], a[k])==1){
int c=a[i]+a[j]+a[k];
if(c>max)
max=c;
}
}
}
}
cout<<"输出:"<<max<<endl;
return 0;
}
#输出