C语言博客作业—结构体
一、PTA实验作业
题目1:结构体数组按总分排序
1. 本题PTA提交列表

2. 设计思路
void calc //函数calc求出p指针所指的结构体数组中 n 名学生各自的总分
{
定义循环变量i;
for i=0 to i<n
总分sum=三门课之和;
end for
}
void sort // 函数sort对p指针所指的结构体数组的学生数据按总分降序排序
{
定义循环变量i,j;
定义结构变量max,temp;
for i=0 to i<n-1
先把最大组设为第i组;
for j=i+1 to j<5
如果第j组的总分大于最大组的总分
利用temp交换,保留总分最大的组;
end for
第i组换为最大组;
end for
}
3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。
- 一开始不知道作为中间交换的temp也要设成结构变量,提示编译错误后,试着换一个定义,然后就好啦。改正了一些编译错误后,一开始输出一直都是最大的那个五号,是排序法掌握的不够熟练,导致找到最大值后就结束程序了;
- 改正后,输出结果如下:最后一个比较出现错误,可能是循环条件有问题;但是调试不出什么,后来想起来上一次自己犯的错误,转换的时候没有加上大括号!!!一步一步执行所以调试不容易发现这个地方有错,,,


题目2:计算职工工资
1. 本题PTA提交列表

2. 设计思路
struct
{
char name[20];
float jbgz;
float fdgz;
float zc;
}fact[10000];//该结构体表示职员的信息,包括姓名、基本工资、浮动工资和支出
主函数
{
定义循环变量 i;职员人数N;
输入N;
for i=0 to i<N
输入职员信息:姓名、基本工资、浮动工资和支出 ;
end for
for i=0 to i<N
输出职员的姓名,实发工资( 基本工资加浮动工资减支出 );
end for
3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。
- 由于没有给出职员的人数,所以一开始只给了十个但是显示段错误,我以为是名字的长度不够,但是并不是;看了同学的代码以后发现可能是职员人数的问题,可以先输入N再定义结构体,试了一下确实可以,但是我觉得先定义结构体代码看起来会比较整洁,所以试了一百个,还是不够,我就直接改成了一万个就可以了。
题目3:通讯录的录入与显示
1. 本题PTA提交列表


2. 设计思路
struct person
{
int number;
char name[100];
char birth[100];
char gender;
char line[100];
char phone[100];
}p[100];//该结构体表示联系人的编号、姓名、出生日期、性别、固定电话号码、移动电话号码
主函数
{
定义输入联系人的人数为N,查询的人数为K,num,循环变量i,j,flag;
输入N;
for i=0 to i<N
编号=i,输入 联系人的编号、姓名、出生日期、性别、固定电话号码、移动电话号码;
end for
输入K;
定义数组a[K];
for i=0 to i<K
输入a[i];
for i=0 to i<K
flag=0;
for j=0 to j<N
if(找到编号) 输出联系人的姓名、 固定电话号码、移动电话号码、性别、出生日期,flag=1;
end for
if(flag等于0) 输出"Not Found"
end for
}
3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。
- 输入实例一开始总是输出p[0]和p[1],通过调试发现输出里面一开始输出p[i],后来改成嵌套循环后应该输出的是p[j],所以导致答案错误;改正后输出正确,但是不能输出没有找到的情况,猜测是flag出现问题;



- 判断一次找到后flag的值就变成1了,这个样子没有办法每次都判断是否找到,所以把flag=0放到外层循环就可以进行正确判断了;

二、截图本周题目集的PTA最后排名。

三、阅读代码
1. 输入10个同学的姓名、数学成绩、英语成绩和物理成绩,确定总分最高的同学,并打印其姓名及其三门课程的成绩。

做了本周作业不会觉得这道题很麻烦,但是该示例的解题过程引入了结构体指针(定义的变量名有点长),这是我写作业的时候没有用到的(因为不太熟悉所以不敢用)。
2.结构体嵌套示例:


本来想用一个嵌套结构体写一道作业,但是没有写出来,所以看了看这段代码,稍微理解了一点嵌套。
四、本周学习总结
1.自己总结本周学习内容。
结构体(数据结构丰富 ,型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等都可以包含在结构体内)
结构体
struct 结构体类型名
{
类型1 成员1;
类型2 成员2;
......
类型n 成员n;
}变量列表;
//如果要声明变量结构,可以在结构定义时,在结束的分号之前加上这些变量的名字,也可以在定义结构之后使用struct 结构名 变量列表;语句声明结构变量。
//只有相同结构类型的变量之间才可以直接整体赋值!(不能在结构体内部直接给成员赋值)
//嵌套定义的结构变量中,每个成员按从左到右,从外到内的方式引用。
共用体
union 共用体名{
成员列表
}变量列表;
//值为最后一次存放的成员的值
//长度等于最长成员的长度
递归
递归出口
递归式子
2.罗列本周一些错题。
结构体的嵌套不会定义,没有理解它的意义,所以写错了;

结构体中有些是数字有些是字符,输入的时候特别容易出现错误;比如PTA最后一题,把生日定义成整型,再嵌套一个年月日结构体,但是输入输出的过程一直都出现问题,后来改成字符型了。后来通过本周的阅读代码对嵌套结构体有所了解。
还是不太能理解结构体的数组范围要如何取,比如作业中有些题目给出名字长度不超过多少即可,那么数组长度定义成超过不就好了,为什么有的不能全部正确,非要很大才可以通过。
C语言博客作业—结构体的更多相关文章
- C语言博客作业-结构体
一.PTA实验作业 6-2 按等级统计学生成绩 1. 本题PTA提交列表 2. 设计思路 定义i,count存放不及格人数 for i=0 to n-1{ 判断 score的值的范围 if 100&g ...
- C语言博客作业--结构体,文件
1.本章学习总结(2分) 1.1 学习内容总结 (1)结构体如何定义.成员如何赋值 结构体的一般形式为: struct 结构体名 { 数据类型 成员名1: 数据 ...
- c语言博客作业--结构体&文件
1.本章学习总结 1.1思维导图 1.2.本章学习体会 本章学到了结构体如何构建,用typedef进行重定义结构体,结构指针,访问结构体的方式等. 文件:文件的读取,文件读写的几个函数,基本了解了文本 ...
- C语言第十次博客作业--结构体
一.PTA实验作业 题目1: 结构体数组按总分排序 1. 本题PTA提交列表 2. 设计思路 求出每名学生的总分 定义i,j循环变量 for i=0 to n for j=0 to 3 p[i].su ...
- C语言博客作业06——结构体&文件
C语言博客作业06--结构体&文件 1.本章学习总结 1.1思维导图 1.2.本章学习体会 在本周的学习中,我们学习了关于结构体和文件的内容.结构体的本身并不难,但以结构体为基础的链表还是让我 ...
- C语言博客作业6---结构体&文件
C语言博客作业6---结构体&文件 1.本章学习总结(2分) 1.1思维导图 请以思维导图总结本周的学习内容.如下图所示: 1.2.学习体会 描述本周学习感受,也可以在这里提出你不理解地方.对 ...
- C语言|博客作业10
问题 回答 C语言 博客作业10 这个作业要求在哪里 作业要求 我在这个课程的目标是 熟练循环语句的用法 这个作业在哪个具体方面帮助我实现目标 pta作业 参考文献 <C语言程序设计> 1 ...
- C语言博客作业5--指针
C语言博客作业5--指针 1.本章学习总结(2分) 1.1思维导图 请以思维导图总结本周的学习内容,如下图所示: 1.2本章学习体会及代码量学习体会 1.2.1学习体会 描述本周学习感受,也可以在这里 ...
- C语言博客作业4--数组
C语言博客作业4--数组 1.本章学习总结 1.1思维导图 请以思维导图总结本周的学习内容,如下图所示: 1.2本章学习体会及代码量学习体会 1.2.1学习体会 描述本周学习感受,也可以在这里提出你不 ...
随机推荐
- asp.net core轻松入门之MVC中Options读取配置文件
接上一篇中讲到利用Bind方法读取配置文件 ASP.NET Core轻松入门Bind读取配置文件到C#实例 那么在这篇文章中,我将在上一篇文章的基础上,利用Options方法读取配置文件 首先注册MV ...
- ThinkCMF的跳转303 404等页面的方法
1. 控制器方法: return $this->redirect('http://www.thinkcmf.cmf',[],301); 或者助手函数: return redirect('http ...
- zk个人入门学习总结(1)
ZooKeeper是一种分布式协调服务,用于管理大型主机.在分布式环境中协调和管理服务是一个复杂的过程.ZooKeeper通过其简单的架构和API解决了这个问题.ZooKeeper允许开发人员专注于核 ...
- 【Luogu3768】简单的数学题(莫比乌斯反演,杜教筛)
[Luogu3768]简单的数学题(莫比乌斯反演,杜教筛) 题面 洛谷 \[求\sum_{i=1}^n\sum_{j=1}^nijgcd(i,j)\] $ n<=10^9$ 题解 很明显的把\( ...
- 数据结构之队列c代码实现
一学期的数据结构,总不能毫无收获吧,因为书上的很多代码并不能实现,我一个编程小白可怎么过呢,难得假期有时间,于是我寻求度娘,从四面八方找了些可以编译通过的源码,这一次是队列,后面我还会逐渐补充,如果有 ...
- nicEditors使用方法
//声明初始化富文本框到context中 <div> <textarea id="context" name="context" style= ...
- BZOJ1493 NOI2007 项链工厂 线段树模拟
提交地址:http://www.lydsy.com/JudgeOnline/problem.php?id=1493 题目大意:给一个数列,进行一系列操作.包括旋转,翻转,改变等操作,以及查询颜色段数. ...
- 超实用的查看磁盘的命令:lsblk
- python全栈开发-Day2 布尔、流程控制、循环
python全栈开发-Day2 布尔 流程控制 循环 一.布尔 1.概述 #布尔值,一个True一个False #计算机俗称电脑,即我们编写程序让计算机运行时,应该是让计算机无限接近人脑,或者说人 ...
- 学习java第一章
本人是一名5年工作的人了,出来社会也比较早,工作经验比起刚刚出社会的大学生要和很多了,知道社会的现实与无奈,我为什么选择想学java昵,肯定受到了朋友的影响的,接下来就讲讲我学习java的过程. 1. ...