
代码如下:
#include <stdio.h>
#include <math.h>
double area(double a,double b,double c)
{
double s,Area;s=(a+b+c)/2.0;Area=sqrt(s*(s-a)(s-b)(s-c));
return Area;}
int main()
{
int i,j,k=0,p=0,q=0,n;scanf("%d",&n);double l[50][2],S[(n*(n-1)*(n-2))/6],max,a,b,c;for(i=0;i<n;i++){for(j=0;j<2;j++){scanf("%lf",&l[i][j]);}}for(i=0;i<n-2;i++){for(p=i+1;p<n-1;p++){for(q=p+1;q<n;q++){a=sqrt((l[i][0]-l[p][0])*(l[i][0]-l[p][0])+(l[i][1]-l[p][1])*(l[i][1]-l[p][1]));b=sqrt((l[i][0]-l[q][0])*(l[i][0]-l[q][0])+(l[i][1]-l[q][1])*(l[i][1]-l[q][1]));c=sqrt((l[p][0]-l[q][0])*(l[p][0]-l[q][0])+(l[p][1]-l[q][1])*(l[p][1]-l[q][1]));S[k]=area(a,b,c);k++;if(k==(n*(n-1)*(n-2))/6){break;}}break;}break;}max=S[0]>=S[1]?S[0]:S[1];for(i=2;i<n*(n-1)*(n-2)/6;i++){max=max>=S[i]?max:S[i];}printf("%.4f",max);return 0;}
double l[50][2], S[(n*(n - 1)*(n - 2)) / 6], max, a, b, c;
你不能声明一个长度未知的double数组,如果想用动态数组,我推荐你用vector