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学习体会 描述本周学习感受,也可以在这里提出你不 ...
随机推荐
- BZOJ 1079: [SCOI2008]着色方案(巧妙的dp)
BZOJ 1079: [SCOI2008]着色方案(巧妙的dp) 题意:有\(n\)个木块排成一行,从左到右依次编号为\(1\)~\(n\).你有\(k\)种颜色的油漆,其中第\(i\)种颜色的油漆足 ...
- Luogu P1860 新魔法药水
题目大意 具体题面及输入格式戳我! 商店里有\(N\)种药水,每种药水都有一个售价和回收价. 小\(S\) 攒了\(V\)元钱,还会\(M\)种魔法,可以把一些药水合成另一种药水. 他在第一天可以购买 ...
- C#多线程编程(6)--线程安全2 互锁构造Interlocked
在线程安全1中,我介绍了线程同步的意义和一种实现线程同步的方法:volatile.volatile关键字属于原子操作的一种,若对一个关键字使用volatile,很多时候会显得很"浪费&quo ...
- js备战春招の四のjs函数
1.普通函数声明: 2.函数表达式:函数表达式可以存储在变量中,在函数表达式存储在变量后,变量也可作为一个函数使用: 以上函数实际上是一个 匿名函数 (函数没有名称).函数存储在变量中,不需要函数名称 ...
- Linux shell 脚本(三)
转载请标明出处: http://blog.csdn.net/zwto1/article/details/45111547: 本文出自:[zhang_way的博客专栏] 九.使用case 分支 语法 ...
- 免费后台管理UI界面、html源码推荐
一个好的UI应该满足的条件应该达到如下几个: 1.美观.大方.简洁 2.兼容IE8.不考虑兼容IE6/IE7,因为现在还有很多公司在使用Win7系统,系统内置了IE8 3.能通过选项卡打开多个页面,不 ...
- maven导入多模块项目
maven导入多模块项目 一.SVN上Maven多模块项目结构 使用eclipse导入SVN上的Maven多模块项目 Maven多模块项目所在SVN目录 二.eclipse通过SVN导入到工作空间 ...
- 如何提高windows的性能
默认windows启用了很多的效果,我们可能平时没有注意到,比如什么淡入淡出效果之类的,其实在我看来,这些效果不仅难看,而且影响了windows的性能,下面我就来说说怎么通过关闭这些效果来提高wind ...
- 设计模式——职责链模式(C++实现)
#include <iostream> #include <string> using namespace std; class Handler { public: Handl ...
- kafka概念使用简介注意点
使用场景 大数据量.低并发.高可用.订阅消费场景 概念理解 分区个数与消费者个数 分区个数 = 消费者个数 :最合适状态 分区个数 > 消费者个数 :某些消费者要承担更多的分区数据消费 分区个数 ...