| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1425 人关注过本帖
标题:SOS!求检查程序,到17个点距离之和最小的点的坐标
取消只看楼主 加入收藏
ajayan
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-3-26
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
SOS!求检查程序,到17个点距离之和最小的点的坐标
    各位高手,菜鸟我编了个程序,程序是:
      十七个点的坐标已知,在平面(21430250<x<21433500),(4570250<y<4572500)区间内求一个点,使得(x,y)到这十七个点的距离之和最小。程序可以运行,但是结果是错的。

麻烦高手检查检查,错误的话请指出那里出错了,在线等!!

  #include<stdio.h>
#include<math.h>
void main()
{int i,x1,y1,s,sum1,sum2,s0,x,y;

int A[17]={21431240,21431280,21431330,21431390,21431480,21431590,21430780,21430780,21430830,21430880,21431980,21432080,21432190,21432270,21430430,21432730,21432880};
int B[17]={4571936,4571746,4571544,4571355,4571153,4570975,4571355,4571165,4570963,4570726,4571740,4571550,4571408,4571218,4570572,4571592,4571456};

for(i=0;i<17;i++)
{
    sum1=0;
    x1=A[i];
    y1=B[i];
    s0=(21430250-x1)*(21430250-x1)+(4570250-y1)*(4570250-y1);
    sum1=sum1+s0;
}

for(x=21430250;x<21433500;x++)
{
    for(y=4570250;y<4572500;y++)
        {
        for(i=0;i<17;i++)
                {
                    sum2=0;
                    x1=A[i];
                    y1=B[i];
                    s=(x-x1)*(x-x1)+(y-y1)*(y-y1);
                    sum2=sum2+s;
                }
        if (sum2<sum1)
            sum1=sum2;
        else sum1=sum1;
        }
}
         
 printf("x=%d\n",x);                             
 printf("y=%d\n",y);

}
搜索更多相关主题的帖子: include 在线 
2013-03-26 17:36
ajayan
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-3-26
收藏
得分:0 
是不是程序太乱了。。自己顶!
2013-03-26 17:50
ajayan
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-3-26
收藏
得分:0 
回复 2楼 azzbcc
不是哦,你说的这个是最后一个点的坐标。在图上明显到其他点的距离之和不是最小的啊
2013-03-26 17:56
ajayan
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-3-26
收藏
得分:0 
回复 7楼 azzbcc
顶礼膜拜!谢谢了~!就是需要的那个点
2013-03-26 21:28
快速回复:SOS!求检查程序,到17个点距离之和最小的点的坐标
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033290 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved