C语言习题(结构)
实际应用中经常会用到二维平面上的点,点的操作包括设置点的位置( 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语言习题(结构)的更多相关文章
- [日常] Go语言圣经--结构体,JSON习题
Go语言圣经-结构体 1.结构体是一种聚合的数据类型,是由零个或多个任意类型的值聚合成的实体 2.通常一行对应一个结构体成员,成员的名字在前类型在后,不过如果相邻的成员类型如果相同的话可以被合并到一行 ...
- Problem Q: C语言习题 计算该日在本年中是第几天
Problem Q: C语言习题 计算该日在本年中是第几天 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 4572 Solved: 2474[Subm ...
- YTU 2428: C语言习题 计算该日在本年中是第几天
2428: C语言习题 计算该日在本年中是第几天 时间限制: 1 Sec 内存限制: 128 MB 提交: 1505 解决: 857 题目描述 定义一个结构体变量(包括年.月.日).编写一个函数d ...
- C语言中结构体赋值问题的讨论
今天帮师姐调一个程序的BUG,师姐的程序中有个结构体直接赋值的语句,在我印象中结构体好像是不能直接赋值的,正如数组不能直接赋值那样,我怀疑这个地方有问题,但最后证明并不是这个问题.那么就总结一下C语言 ...
- C语言的结构体和C++结构体的区别
关于C++中声明结构体中需要使用构造器创建实例对象的语法: <C++的结构体构造方法的基本概念:结构体的构造方法需要和结构体的名字相同,并且无返回值,也不要void关键字,这样的方法就是构造器的 ...
- YTU 2974: C语言习题5.26--文件操作3
2974: C语言习题5.26--文件操作3 时间限制: 1 Sec 内存限制: 128 MB 提交: 213 解决: 92 题目描述 文本文件score.dic 中存储了n名学生的信息(班级编号 ...
- YTU 2973: C语言习题5.25--文件操作2
2973: C语言习题5.25--文件操作2 时间限制: 1 Sec 内存限制: 128 MB 提交: 242 解决: 105 题目描述 文本文件score.dic 中存储了n名学生的信息(班级编 ...
- YTU 2972: C语言习题5.24--文件操作1
2972: C语言习题5.24--文件操作1 时间限制: 1 Sec 内存限制: 128 MB 提交: 248 解决: 94 题目描述 文本文件score.dic 中存储了n名学生的信息(班级编号 ...
- 01.C语言关于结构体的学习笔记
我对于学习的C语言的结构体做一个小的学习总结,总结如下: 结构体:structure 结构体是一种用户自己建立的数据类型,由不同类型数据组成的组合型的数据结构.在其他高级语言中称为记录(record) ...
- C语言中结构体对齐问题
C语言中结构体对齐问题 收藏 关于C语言中的结构体对齐问题 1,比如: struct{short a1;short a2;short a3;}A;struct{long a1;short a2;}B; ...
随机推荐
- 【C# 进阶】事件!直接上事件!
http://www.tracefact.net/csharp-programming/delegates-and-events-in-csharp.aspx ZiYang 张,何许人也?看了他写的博 ...
- android studio 项目迁移编码问题
关于编码问题.首先,eclipse上一般我们文件默认都设置成UTF-.对于迁移到Android Studio显示不存在乱码问题. 部分同学可能会遇到一个问题:代码中的中文(包括注释的中文),在编译时跳 ...
- tomcat7 配置
引用:http://blog.csdn.net/mengxiangbaidu/article/details/7020484 1.安装JDK, 2.安装, apt-get install tomca ...
- python学习笔记系列----(七)类
7.1 python类和相关术语的简介 Python 通过最小的新语法和语义在语言中实现了类. 它是 C++ 或者 Modula-3 语言中类机制的混合.类的大多数重要特性都被完整的保留下来:类继承机 ...
- java.sql.SQLException: Incorrect key file for table 'C:\Windows\TEMP\#sql578_6e2_68d.MYI'; try to repair it
java.sql.SQLException: Incorrect key file for table 'C:\Windows\TEMP\#sql578_6e2_68d.MYI'; try to re ...
- 通过cygwin安装openSSH
openSSH的安装是学习hadoop必不可少的一步,如果ssh装不好,hadoop的安装会进行不下去.本人初学hadoop时发现以前安装ssh走了一些弯路,现在又有了一些认识,所以重写了这篇日志,供 ...
- SQL 还原数据库
1. 查看 SQL Server 2000 中 Northwind 数据库文件的逻辑文件名(logical file name)和物理文件路径(operation system file name): ...
- android、IOS和手机基础知识
一.手机基础知识 1.固件.刷固件.固件版本 固件是指固化的软件,英文为firmware,它是把某个系统程序写入到特定的硬件系统中的flashROM.手机固件相当于手机的系统,刷新固件就相当于刷系统. ...
- CF 484E - Sign on Fence
E. Sign on Fence time limit per test 4 seconds memory limit per test 256 megabytes input standard in ...
- iOS开发直播需要的准备
这里我们要研究直播技术首先需要对AVFoundation熟悉掌握 AVFoundation拍照和录制视频 AVFoundation中提供了很多现成的播放器和录音机,但是事实上它还有更加底层的内容可以供 ...