求质点的质心

定义二维结构体数组grid[2][2],存放4个质点的x坐标和y坐标。以步长为1的引用模式求得所有质点x坐标的和,以及y坐标的和。利用右移操作求得质心的x坐标和y坐标。

代码实现

struct  position
{
    int   x;
    int   y;
};

struct position grid[2][2];
int total_x=0, total_y=0;
int  i,  j;
void centroid();


    

void centroid()
{
    int m=1;
    for(i=0; i<2; i++) 
     for(j=0; j<2; j++)
     {
         total_x+=grid[i][j].x;
         total_y+=grid[i][j].y;
     }
    if(total_x>=0)
        total_x>>=2;
    else
       total_x=(total_x+(m<<2)-1)>>2;     //若total_x<0, 加偏置量
    if(total_y>=0)
       total_y>>=2;
    else
      total_y=(total_y+(m<<2)-1)>>2;      //若total_y<0, 加偏置量 
 }

 

void main()
 {
    for(i=0; i<2;i ++)
      for(j=0; j<2; ++)
     {
         grid[i][j].x=2*(i+j)-3;
         grid[i][j].y=2*(i+j)-4;
     }
   centroid();
 }


     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值