C语言结构体作业
一、PTA实验作业
题目1:6-3 结构体数组中查找指定编号人员
1. 本题PTA提交列表
2. 设计思路
定义一个结构体指针*p
for i=0 to i=7
如果std+i的编号与输入的编号一样 将std+i的地址传给p
end for
返回p
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
- 无错误
题目2:7-2 时间换算
1. 本题PTA提交列表
2. 设计思路
定义结构体数组Time,其内容包括时,分,秒
定义一个字符ch,增加的秒数n,结构体变量time
输入time和n
如果time中的秒数加上n大于等于60 time.s加上n后再减去60 time的分钟数加上1
否则 time.s加上n
如果time中的分钟数大于等于60 time.m减去60 time的小时数加上1
如果time的小时数等于24 time.h减去24
输出结果
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
- 秒数加上n后大于等于60就再减去60,但是我第一次做的时候忘了加上n后没大于等于60的情况,这时候是要加上n但是不用减去60的
题目3:7-6 通讯录的录入与显示
1. 本题PTA提交列表
2. 设计思路
定义一个结构体变量person,内容为姓名 生日 性别 固话 手机
定义整型变量n,k,num,输入n,定义结构体数组friends[n]
for i=0 to i=n-1
输入结构体数组的所有变量
end i
输入k
for j=1 to j=k
输入num
如果num小于n且大于等于0 输出friends[num]的姓名 固话 手机 性别 生日
否则 输出Not Found
end j
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
- 我定义的性别是个字符,在输入性别后,要有一个getchar()来吸收空格,否则空格就会被性别吸收
- 在最下面j的循环中,要在num大于等于0且小于n的情况下输出,但是我做的时候没注意,写的小于等于n,在devc上按pta的错误点调试也没错,我试了很多次后只好去看自己的代码,这才发现我的错误
二、截图本周题目集的PTA最后排名。
三、阅读代码
1:一帮一
- 题目描述:输入第一行给出正偶数N(<=50),即全班学生的人数。此后N行,按照名次从高到低的顺序给出每个学生的性别(0代表女生,1代表男生)和姓名(不超过8个英文字母的非空字符串),其间以1个空格分隔。这里保证本班男女比例是1:1,并且没有并列名次。
每行输出一组两个学生的姓名,其间以1个空格分隔。名次高的学生在前,名次低的学生在后。小组的输出顺序按照前面学生的名次从高到低排列。 - 此代码使用结构体来表示学生 ,下面的循环先输出前一半的学生,然后从后面开始寻找与之配对的学生,数组b的功能是来判断对应的学生是否已经退出
- 首先,题目中学生信息包括姓名的性别,用结构体表示更加方便简洁;这个代码先输出前半的学生,然后巧妙地运用了数组b来避开已经输出过的学生
2:斐波那契数列
- 该函数功能是输出斐波那契数列
- 通过递归函数,简单实现斐波那契数列的计算,使代码精简易懂,但是递归次数过多也容易造成栈溢出。
四、本周学习总结
1.总结本周学习内容。
1、结构体、共用体、枚举这种构造数据类型特点。
- 结构体和数组一样都是构造型数据类型,和数组不同的是,结构体可以处理不同类型的数据。结构体里还可以有结构体类型、共用体的类型的数据。
- 共用体是一种多变量共享存储空间的构造类型,它允许几种不同的变量共用同一存储空间。共用体和结构体的区别:
1.结构体每一位成员都用来表示一种具体事务的属性,共用体成员可以表示多种属性(同一存储空间可以存储不同类型的数据)。
2.结构体总空间大小,等于各成员总长度,共用体空间等于最大成员占据的空间。
3.共用体不能赋初值。 - 枚举类型是指变量的值可以全部列出,定义一个枚举变量后,变量的值确定在定义之中。它和结构体、共用体的区别在于,枚举元素是常量,只能在定义阶段赋值。
2、递归函数原理
- 递归是把一个不能或不好解决的大问题转化为一个或几个小问题,再把这些小问题进一步分解成更小的问题,直至每个小问题都可以直接解决。
- 递归算法的实质:是把问题转化为规模缩小了的同类问题的子问题。然后递归调用函数(或过程)来表示问题的解。
- 递归算法解决问题的特点:
(1) 递归就是在过程或函数里调用自身。
(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。
(3) 递归算法解题通常显得很简洁,但递归算法解题的运行效率较低。所以一般不提倡用递归算法设计程序。
(4) 在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等。所以一般不提倡用递归算法设计程序。
2.罗列本周一些错题。
- 1、
这题其实很简单,但我做的时候没仔细看,把加看成乘,所以以为到0的时候返回0,乘以0就等于0;事实上,这是加法,答案应该是10 - 2、
这题我没注意思考,以为最后到7的时候输出完就没了,事实上,每一次计算都要输出一次
C语言结构体作业的更多相关文章
- 漫谈C语言结构体struct、公用体union空间占用
先用代码说话: #include<stdio.h> union union_data0{ int a ;//本身占用4个字节 char b ;//本身占用1个字节 int c ; }; u ...
- 解析C语言结构体对齐(内存对齐问题)
C语言结构体对齐也是老生常谈的话题了.基本上是面试题的必考题.内容虽然很基础,但一不小心就会弄错.写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的 ...
- 不可或缺 Windows Native (8) - C 语言: 结构体,共用体,枚举,类型定义符
[源码下载] 不可或缺 Windows Native (8) - C 语言: 结构体,共用体,枚举,类型定义符 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 结构体 ...
- Go语言结构体(struct)
Go 语言结构体 Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型. 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合. 结构体表示一项记录,比如保存图 ...
- C语言结构体定义的几种方法
什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类.结构体可以被声明为变量.指针或数组等,用以实现较复杂的数据 ...
- 对嵌入式开发C语言结构体的一点总结
今天冬至居然不上班,公司的良心啊!这回有心情写博客和日志了,好了,废话不多说.直接看下文: 鉴于嵌入式开发过程中,C语言结构体的使用当然是必不可少.话说,基础什么的比你会更牛逼的算法更重要,基础不牢, ...
- C语言结构体变量私有化
操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 问题描述 C语言结构体定义中的变量默认是公有(Public)属性,如果实现成员变量的私有(Private)化? 解决方案 ...
- 在C语言结构体中添加成员函数
我们在使用C语言的结构体时,经常都是只定义几个成员变量,而学过面向对象的人应该知道,我们定义类时,不只是定义了成员变量,还定义了成员方法,而类的结构和结构体非常的相似,所以,为什么不想想如何在C语言结 ...
- 将c语言的结构体定义变成对应的golang语言的结构体定义,并将golang语言结构体变量的指针传递给c语言,cast C struct to Go struct
https://groups.google.com/forum/#!topic/golang-nuts/JkvR4dQy9t4 https://golang.org/misc/cgo/gmp/gmp. ...
随机推荐
- 2.3 InnoDB 体系架构
下图简单显示了InnoDB的存储引擎的体系架构,从图可见,InnoDB储存引擎有多个内存块,可以认为这些内存块组成了一个大的内存池,负责如下工作: 维护所有进程/线程需要访问的多个内部数据结构 缓存磁 ...
- iOS - UIView 动画
1.UIView 动画 核心动画 和 UIView 动画 的区别: 核心动画一切都是假象,并不会真实的改变图层的属性值,如果以后做动画的时候,不需要与用户交互,通常用核心动画(转场). UIView ...
- json数组本地获取,以及根据字段排序【部分摘录】
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 第一节 JDK是什么?JRE是什么?JDK和JRE的区别?以及jdk安装和测试。
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.Java语言作为静态面向对象编程语言的代表 ...
- iOS工具——Xcode9无证书真机调试
入坑iOS开发这么久,一直都是在模拟器上运行,公司的项目也都有公司的开发者账号进行真机调试.但是很多时候在网上download一些demo想在真机上运行看一下效果的时候都没法成行,今天抽空好好研究和学 ...
- windows下编译caffe报错:error MSB4062: 未能从程序集 E:\NugetPackages\OpenCV.2.4.10\......的解决办法
参考博客:http://blog.csdn.net/u013277656/article/details/75040459 在windows上编译caffe时,用vs打开后会自动加载还原NugetPa ...
- c++中回调函数和函数指针的使用
#include "stdafx.h" #include <iostream> //#include <string> using namespace st ...
- Python的多线程GIL浅谈
来源知乎:https://www.zhihu.com/question/23474039/answer/269526476 在介绍Python中的线程之前,先明确一个问题,Python中的多线程是假的 ...
- wifislax中的linset软件钓鱼教程
wifislax中很多破解wifi密码的工具,下面就来说说里面的linset软件的钓鱼过程,国内很多人知道这个方法,不过没有总结,youtube上视频一大把,我刚才测试了一把,还是打算记录一下攻击过程 ...
- TCP/IP NAT知识梳理
一. IP地址的获取 首先,互联网上的每台主机都有一个唯一的IP地址标识,计算机在通信时需要向网络中的DHCP(动态主机配置协议)服务器申请一个IP地址,但开始主机并不知道哪台机器是DHCP服务器(不 ...