这个计算最大三角形面积的代码到底哪里错了?

img


代码如下:
#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