美图编程计算三角形面积
发布于 2017-04-16 21:13 2759 次浏览 0 赞 来自 我要提问  

#include<iostream>

#include<string>

#include <vector>

#include <iomanip>

#include <cmath>

using namespace std;


double lineth(int x1,int y1,int x2,int y2)

{

double len;

len=sqrt(1.0*(x1-x2)*(x1-x2)+1.0*(y1-y2)*(y1-y2));

return len;

}

int main()

{

int num;

cin>>num;

while (num>0)

{

vector<int> X,Y;

X.resize(num);

Y.resize(num);

for (int i=0;i<num;i++)

{

cin>>X[i]>>Y[i];

}

double minarea=999999,maxarea=0;

double a,b,c,p;

for (int m=0;m<=num-3;m++)

{

for (int n=m+1;n<=num-2;n++)

{

for (int k=n+1;k<=num-1;k++)

{

a=lineth(X[m],Y[m],X[n],Y[n]);

b=lineth(X[m],Y[m],X[k],Y[k]);

c=lineth(X[k],Y[k],X[n],Y[n]);

if ((a+b)<=c||(b+c)<=a||(a+c)<=b)

{

continue;

}

p=(a+b+c)/2;

double nowarea=sqrt(p*(p-a)*(p-b)*(p-c));

if (nowarea<minarea)

{

minarea=nowarea;

}

else if (nowarea>maxarea)

{

maxarea=nowarea;

}

}

}

}

if (maxarea==0)

{

maxarea=minarea;

}

cout.fixed;

cout.precision(1);

cout<<minarea<<" ";

cout<<maxarea<<endl;

cin>>num;

}

return 0;

}

要求同一样例输出两个量之间用空格;不同样例输出之间用换行。

一致报输出超限,感觉日了狗了

2 条回复

cout完了之后,不要再cin >> nun

就是输出之后不能再读入了 

2017-04-16 21:59
coder_QZ89WS6A 回复 秋名山老司机

请问,这样写跟把cin>>num放在while(cin>>num)里区别大吗?

2017-04-16 23:50
添加回复
回到顶部