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; ...
随机推荐
- java 反射机制
1.反射机制是什么: (1)反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能 ...
- hdu5219 Repeating
后缀数组+莫比乌斯函数 #include <stdio.h> #include <string.h> #include<algorithm> using names ...
- EL表达式查询出来的数据,下载成excel表格,很实用的
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- 计算ScrollView的当前页面
//每页宽度 CGFloat pageWidth = sender.frame.size.width; //根据当前的坐标与页宽计算当前页码 int currentPage = floor((send ...
- Java 之 List<T> 接口的实现:ArrayList
Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap ArrayLis ...
- 添加群组表AppGroup和群组详细表AppGroupDetails
添加群组表AppGroup和群组详细表AppGroupDetails CREATE TABLE [dbo].[AppGroup]( ) NOT NULL PRIMARY KEY, ) NOT NULL ...
- 渗透技术--SQL注入写一句话木马原理
讲一下SQL注入中写一句话拿webshell的原理,主要使用的是 SELECT ... INTO OUTFILE 这个语句,下面是一个语句的例子: SELECT * INTO OUTFILE 'C:\ ...
- 网络层、传输层、应用层、端口通信协议编程接口 - http,socket,tcp/ip 网络传输与通讯知识总结
引: http://coach.iteye.com/blog/2024511 什么是TCP和UDP,以及二者区别是什么? TCP的全称为传输控制协议.这种协议可以提供面向连接的.可靠的.点到点的通信. ...
- webstorm2016.2 for mac 安装
文件来自斯蒂芬周: http://www.sdifenzhou.com/?p=6941&jdfwkey=jmnzy 附上详细安装步骤:
- web api authentication
最近在学习web api authentication,以Jwt为例, 可以这样理解,token是身份证,用户名和密码是户口本, 身份证是有有效期的(jwt 有过期时间),且携带方便(自己带有所有信息 ...