c++程序解释,中括号里的必须说明,谢谢

附录一:任意凸多边形重心C++算法#include<iostream>#include<cmath>#include<iomanip>usingnamespacestd;... 附录一:任意凸多边形重心C++算法
#include <iostream>
#include <cmath>
#include <iomanip> using namespace std; 【3个#是?】
struct point
{
double x; 【必须是double?】
double y;
};
point gravity(point *p, int n)
{
double area = 0;
point center;
center.x = 0;
center.y = 0;
for (int i = 0; i < n-1; i++)
{
area += (p[i].x*p[i+1].y - p[i+1].x*p[i].y)/2; 【什么意思?】
center.x += (p[i].x*p[i+1].y - p[i+1].x*p[i].y) * (p[i].x + p[i+1].x);
center.y += (p[i].x*p[i+1].y - p[i+1].x*p[i].y) * (p[i].y + p[i+1].y);
}
area += (p[n-1].x*p[0].y - p[0].x*p[n-1].y)/2;
center.x += (p[n-1].x*p[0].y - p[0].x*p[n-1].y) * (p[n-1].x + p[0].x);
center.y += (p[n-1].x*p[0].y - p[0].x*p[n-1].y) * (p[n-1].y + p[0].y);
center.x /= 6*area;
center.y /= 6*area;
return center;
}
展开
 我来答
百度网友ce012de
2015-08-20 · 超过18用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:31.2万
展开全部

先告述我们这代码是干什么的!!!

所有预处理指令都以#开头

要使用小数的时候使用浮点数,double是浮点数(如果用整数的话运算中小数部分直接向零取整(就是直接去除)导致丧失精度)

哪一行的意思:

area += (p[i].x * p [i+1].y - p[i+1].x * p[i].y) / 2;

p是point类型指针,包含x,y两个浮点数(自己看定义),对p使用下表运算符,看来是当作数组指针用了

很简单么,+= 是复合赋值运算符,就是两数相加在把结果赋给左边的对象

二元运算符 * 就是乘法, / 是除法

area 加上(((p[i].x * p[i+1].y) - (p[i+1].x * p[i].y)) / 2)的得数再赋值给area


最后问一下你C++学的咋样?我14毫无压力

春晖啊
2015-08-20 · TA获得超过526个赞
知道答主
回答量:466
采纳率:50%
帮助的人:109万
展开全部
3个#是?导入头文件,这个都不知道需要好好看书

必须是double?当然不是,只是精度的问题int, float,

什么意思?正多边形面积的计算公式.
http://wenku.baidu.com/link?url=n7rQLoo7d2Ztkae8IWjm-T9XUwxJD4snOYfVrAqapE5Q_GGQRkzEAvDsZEzzxv8ptEdgMOzSaqBCq-_w2G-i0fNwQjgoF4DZhNM8bSVqFRq慢慢看一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式