进阶项目3.1-点结构体
2016-07-26 22:37
183 查看
任务和代码:请编写程序,输入两点p1和p2的坐标,输出两点之间的距离,以及p1关于x轴的对称点,p2关于原点的对称点,
/*
文件名:main.c
作者:小风景
完成日期:2016.7.26
问题描述:请编写程序,输入两点p1和p2的坐标,输出两点之间的距离,以及p1关于x轴的对称点,p2关于原点的对称点,
程序输出:
*/
#include <stdio.h>
#include <math.h>
struct Point
{
float x; //横坐标
float y; //纵坐标
};
int main()
{
float distance = 0;
struct Point p1 = {0};
struct Point p2 = {0};
struct Point p3 = {0};
printf("请输入一个点p1的坐标 x y:");
scanf("%f %f",&p1.x,&p1.y);
printf("请输入一个点p2的坐标 x y:");
fflush(stdin);
scanf("%f %f",&p2.x,&p2.y);
p3.x = p1.x - p2.x;
p3.y = p1.y - p2.y;
distance = sqrt(p3.x * p3.x + p3.y * p3.y);
printf("点p1(%.1f,%.1f)到点p2(%.1f,%.1f)的距离是:%.2f\n",p1.x,p1.y,p2.x,p2.y,distance);
printf("点p1关于x轴的对称点(%.1f,%.1f)\n",p1.x,-p1.y);
printf("点p2关于原点的对称点(%.1f,%.1f)\n",-p2.x,-p2.y);
return 0;
}
程序运行结果:
/*
文件名:main.c
作者:小风景
完成日期:2016.7.26
问题描述:请编写程序,输入两点p1和p2的坐标,输出两点之间的距离,以及p1关于x轴的对称点,p2关于原点的对称点,
程序输出:
*/
#include <stdio.h>
#include <math.h>
struct Point
{
float x; //横坐标
float y; //纵坐标
};
int main()
{
float distance = 0;
struct Point p1 = {0};
struct Point p2 = {0};
struct Point p3 = {0};
printf("请输入一个点p1的坐标 x y:");
scanf("%f %f",&p1.x,&p1.y);
printf("请输入一个点p2的坐标 x y:");
fflush(stdin);
scanf("%f %f",&p2.x,&p2.y);
p3.x = p1.x - p2.x;
p3.y = p1.y - p2.y;
distance = sqrt(p3.x * p3.x + p3.y * p3.y);
printf("点p1(%.1f,%.1f)到点p2(%.1f,%.1f)的距离是:%.2f\n",p1.x,p1.y,p2.x,p2.y,distance);
printf("点p1关于x轴的对称点(%.1f,%.1f)\n",p1.x,-p1.y);
printf("点p2关于原点的对称点(%.1f,%.1f)\n",-p2.x,-p2.y);
return 0;
}
程序运行结果:
相关文章推荐
- CSS3 RGBA的高级属性
- WeX5基本使用浅析
- k-近邻算法(k-Nearest Neighbor)
- javascript中的对象字面量为啥这么酷
- vim进阶命令(一)
- 获取手机存储信息
- Java_常用对象_StringBuffer
- JB for iOS 9.3
- [android] 练习viewpagerindicator的使用(二)
- HashSet用法分析
- POJ 2828-Buy Tickets
- hdu 5687 Problem C 字典树
- Ubuntu16.04安装后开发环境配置和常用软件安装
- eclipse-jee-indigo,kepler,luna,juno分别是什么意思?
- EJB系列(二)---开发
- Ubuntu16.04安装后开发环境配置和常用软件安装
- 一年来我看过的42本精品书
- HTTP请求和响应
- 钩子原理及实例:实现键盘钩子截获密码
- 23种设计模式