实际应用中经常会用到二维平面上的点,点的操作包括设置点的位置( pointT setPoint(double x , double y ) ),显示第n个点的位置( void showPoint(pointT *p,int n) ), 计算两个点的距离double distPoint(pointT pt1, pointT pt2),并将点的坐标以及距离保存到文件Info.txt中void saveInfo (pointT pt1, pointT pt2, char *filename) 。试定义平面上点的数据类型pointT,并实现这些函数,自行编写main函数测试这些函数。

#include<stdio.h>
#include<math.h> struct pointT{
double x;
double y;
}; struct pointT setPoint(double x, double y)
{
struct pointT temp; temp.x = x;
temp.y = y;
return temp;
} void showPoint(struct pointT *p, int n)
{
printf("point%d(%.1f , %.1f)", n, (p+n-)->x, (p+n-)->y);
} double distPoint(struct pointT pt1, struct pointT pt2)
{
return sqrt((pt1.x - pt2.x)*(pt1.x - pt2.x) + (pt1.y - pt2.y)*((pt1.y - pt2.y)));
} void saveInfo(struct pointT pt1, struct pointT pt2, char *filename)
{
//打开文件
FILE *fp;
fp = fopen(filename , "a"); //操作
fprintf(fp, "point1(%.1f , %.1f), point2(%.1f , %.1f)\n", pt1.x, pt1.y, pt2.x, pt2.y);
fprintf(fp, "dist between point1 and point2 is %.1f\n", distPoint(pt1 , pt2)); //关闭文件
fclose(fp);
} // test
int main()
{
struct pointT pt[]; pt[] = setPoint( , );
pt[] = setPoint( , );
pt[] = setPoint( , ); showPoint(pt , ); printf("dist between point1 and point2 is %.1f\n", distPoint(pt[] , pt[])); char *filename = "Info.txt";
saveInfo(pt[], pt[], filename); return ;
}

补充说明:

代码是按c89写的,这个标准里必须使用

struct pointT pt1

声明,而不能使用

pointT pt

如果必要,自行修改。

(本人用的编译器比较旧)

C语言习题(结构)的更多相关文章

  1. [日常] Go语言圣经--结构体,JSON习题

    Go语言圣经-结构体 1.结构体是一种聚合的数据类型,是由零个或多个任意类型的值聚合成的实体 2.通常一行对应一个结构体成员,成员的名字在前类型在后,不过如果相邻的成员类型如果相同的话可以被合并到一行 ...

  2. Problem Q: C语言习题 计算该日在本年中是第几天

    Problem Q: C语言习题 计算该日在本年中是第几天 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 4572  Solved: 2474[Subm ...

  3. YTU 2428: C语言习题 计算该日在本年中是第几天

    2428: C语言习题 计算该日在本年中是第几天 时间限制: 1 Sec  内存限制: 128 MB 提交: 1505  解决: 857 题目描述 定义一个结构体变量(包括年.月.日).编写一个函数d ...

  4. C语言中结构体赋值问题的讨论

    今天帮师姐调一个程序的BUG,师姐的程序中有个结构体直接赋值的语句,在我印象中结构体好像是不能直接赋值的,正如数组不能直接赋值那样,我怀疑这个地方有问题,但最后证明并不是这个问题.那么就总结一下C语言 ...

  5. C语言的结构体和C++结构体的区别

    关于C++中声明结构体中需要使用构造器创建实例对象的语法: <C++的结构体构造方法的基本概念:结构体的构造方法需要和结构体的名字相同,并且无返回值,也不要void关键字,这样的方法就是构造器的 ...

  6. YTU 2974: C语言习题5.26--文件操作3

    2974: C语言习题5.26--文件操作3 时间限制: 1 Sec  内存限制: 128 MB 提交: 213  解决: 92 题目描述 文本文件score.dic 中存储了n名学生的信息(班级编号 ...

  7. YTU 2973: C语言习题5.25--文件操作2

    2973: C语言习题5.25--文件操作2 时间限制: 1 Sec  内存限制: 128 MB 提交: 242  解决: 105 题目描述 文本文件score.dic 中存储了n名学生的信息(班级编 ...

  8. YTU 2972: C语言习题5.24--文件操作1

    2972: C语言习题5.24--文件操作1 时间限制: 1 Sec  内存限制: 128 MB 提交: 248  解决: 94 题目描述 文本文件score.dic 中存储了n名学生的信息(班级编号 ...

  9. 01.C语言关于结构体的学习笔记

    我对于学习的C语言的结构体做一个小的学习总结,总结如下: 结构体:structure 结构体是一种用户自己建立的数据类型,由不同类型数据组成的组合型的数据结构.在其他高级语言中称为记录(record) ...

  10. C语言中结构体对齐问题

    C语言中结构体对齐问题 收藏 关于C语言中的结构体对齐问题 1,比如: struct{short a1;short a2;short a3;}A;struct{long a1;short a2;}B; ...

随机推荐

  1. cygwin 安装apt-cyg命令

    googlecode关闭了.没法用wget安装apt-cyg 找了半天只有github里有个方法可行: apt-cyg is a simple script. To install: lynx -so ...

  2. C++数组实现的循环队列

    #include<iostream> #include <string> /* 功能:数组实现的循环队列,C++实现,学习参考 */ using namespace std; ...

  3. Android驱动开发前的准备

    最近看了一些Android驱动开发前需要知道的资料,收获很多,接下来就谈谈我自己的一些心得体会. Android在近几年时间发展迅速,已经成为智能手机操作系统的老大.不过,因为Android原生的代码 ...

  4. sublimeText jsformat 插件被当做病毒 virus

    最近在个只可往他里面发邮件,不能往外上任何互联网的地方工作,用 sublimetext 要装个sublime 插件 jsformat 十分麻烦.用gmail邮箱发总是报病毒. 最后挨个尝试,发现是 j ...

  5. Canvas: Out of system resources

    一个手写板的项目 在线程中操作Canvas画用户的笔记, 画不了几笔就卡住不画了, 然后保存到另外的image时 提示“Out of system Resource”错误, 百思不得姐 中间考虑是不是 ...

  6. 很久以前写的一个 ShareRestrictedSD 类

    代码中一开始的 几个 USES 单元,可能是多余的. unit ShareRestrictedSD; interface uses Windows, Messages, SysUtils, Class ...

  7. Web Word和Excel

    暂时收集点资料备用 Excel http://www.cnblogs.com/downmoon/archive/2011/05/30/2063258.html http://www.cnblogs.c ...

  8. Windows Azure 将正式更名为 Microsoft Azure

    微软的公共云平台在2014年4月3日正式从Windows Azure 更名为Microsoft Azure. windows azure是二级产品名,microsoft azure是一级产品名,和mi ...

  9. 如何在LIRE搜索中使用多特征

    这是官网上的解答,先mark下来. http://www.semanticmetadata.net/wiki/lirefaq/ ==================================== ...

  10. 初始angular框架(2)

    看文档看不懂吧  那就应该看看点例子  看什么例子呢  看看视频教程  一般老师会把一些重要的地方着重讲解的  不懂就反复的看