c++,关于loop的问题,刚学一个月。大神帮帮忙!谢谢

luciferp123 2016-10-13 01:03:04
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main(void)
{

int i,X,Y;
float x,y;
float D;
X=3;
Y=6; /*centroid(3,6)*/
for(i=0;i<10;++i){
printf("Enter way point %d (x%d y%d):\n",i,i,i);

scanf("%f%f",&x,&y);

printf("*** Distance of way point %d from centroid = %.6f\n",i,D);

D=(double)sqrt((x-X)*(x-X)+(y-Y)*(y-Y));


}

return 0;
}
下面是题目需要的display
Enter way point 1 (x1 y1): 3 4
*** Distance of way point 1 from centroid = 5.830952
*** Total distance travelled = 0.000000
Enter way point 2 (x2 y2): 1 2
*** Distance of way point 2 from centroid = 3.162278
*** Total distance travelled = 2.828427
Enter way point 3 (x3 y3): -2 1.1
*** Distance of way point 3 from centroid = 0.100000
*** Total distance travelled = 5.960519
Enter way point 4 (x4 y4): -5 -6
*** Distance of way point 4 from centroid = 7.615773
*** Total distance travelled = 13.668307
Enter way point 5 (x5 y5): -2 1.000001
*** Distance of way point 5 from centroid = 0.000001
*** Total distance travelled = 21.284081

想问怎么才能算出Total distance travelled,用后来input的数值减去之前输入的数值
Total distance travelled=(double)sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
code 怎么写?
而且loop 会在*** Distance of way point 5 from centroid = 0.000001停止要求输入新的x,y坐标,code是怎么写的?
感谢。
...全文
351 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-10-13
  • 打赏
  • 举报
回复
上帖代码23行 printf("*** Total distance travelled = %.6lf\n",D); 纠正为 printf("*** Total distance travelled = %.6lf\n",TD);
赵4老师 2016-10-13
  • 打赏
  • 举报
回复
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main(void)
{

    int i,X,Y;
    double x,y,x1,y1;
    double D,TD=0.0;
    X=3;
    Y=6; /*centroid(3,6)*/
    for (i=0;i<10;++i) {
        printf("Enter way point %d (x%d y%d):\n",i,i,i);
        scanf("%lf%lf",&x,&y);
        D=sqrt((x-X)*(x-X)+(y-Y)*(y-Y));
        printf("*** Distance of way point %d from centroid = %.6lf\n",i,D);
        if (i==0) {
            D=0.0;
        } else {
            D=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
        }
        TD+=D;
        printf("*** Total distance travelled = %.6lf\n",D);
        x1=x;
        y1=y;
    }
    return 0;
}
ipqtjmqj 2016-10-13
  • 打赏
  • 举报
回复
当然是建个三个变量保存上次的坐标,以及累计的距离

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧