编写程序,输入两点p1和p2的坐标,输出两点之间的距离,以及p1关于x轴的对称点,p2关于原点的对称点,运行结果如下图所示:
我的代码:
/* Copyright (c) 2016,烟台大学计算机与控制工程学院
All Rights Reserved.
文件名称: 点结构体
作 者:胡寅生
完成日期:2016年12.15
版 本 号;v1.0 */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
struct Point
{
float x;
float y;
};
struct Point;
int main()
{ float l;//l是点p1到点p2的距离
struct Point p1,p2;
printf("请输入p1点的坐标:");
scanf("%f %f",&p1.x,&p1.y);
printf("请输入p2点的坐标:");
scanf("%f %f",&p2.x,&p2.y);
l=sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
printf("两点之间的距离是:%.2f\n",l);
printf("p1关于x轴的对称点是:(%.1f %.1f)\n",p1.x,-p1.y);
printf("p2关于x轴的对称点是:(%.1f %.1f)",-p2.x,-p2.y);
return 0;
}
运行结果:
心得:一定不要忘记取值符!!!!!
老贺的更精巧的代码:
#include <stdio.h>
#include <math.h>
struct Point
{
float x;
float y;
};
int main()
{
struct Point p1, p2;
float dx,dy,d;
printf("请输入p1点的坐标: ");
scanf("%f %f",&p1.x, &p1.y);
printf("请输入p2点的坐标: ");
scanf("%f %f",&p2.x, &p2.y);
dx=p1.x-p2.x;
dy=p1.y-p2.y;
d = sqrt(dx*dx+dy*dy);
printf("两点间的距离是: %.2f\n", d);
printf("p1关于x轴的对称点是(%.1f, %.1f)\n", p1.x, -p1.y);
printf("p2关于原点的对称点是(%.1f, %.1f)\n", -p2.x, -p2.y);
return 0;
}