C语言博客作业--结构体
一、PTA实验作业
题目1:6-3 结构体数组中查找指定编号人员
1. 本题PTA提交列表
2. 设计思路
定义整型变量i
for(i 0 to N-1)
if(strcmp((std+i)->num,num)==0)//使用strcmp函数判断数据是否相等
返回*(std+i)
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
在返回值上一开始不知道返回什么,知道要返回struct student类型的变量,一开始返回的std+i,以为返回的是地址。
题目2:7-1 计算职工工资
1. 本题PTA提交列表
2. 设计思路
struct work{
char name[10];
float basic;//基本
float floating;//浮动
float expend;//支出
float salary;//实发
};该结构体表示职员的基本工资,浮动工资,支出以及实发工资
定义整型变量i,N表示职员的个数
输入N
定义struct work a[N];//定义职员数组
for(i 0 to N-1){
输入名字,基本工资,浮动工资,支出
计算实发工资
}
for(i 0 to N-1)
输出名字,实发工资
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
看到题目输入样式的数字是整数,就一开始把变量定义成了整型。
题目3:7-6 通讯录的录入与显示
1. 本题PTA提交列表
2. 设计思路
struct user{
char name[20];
char birth[20];
char sex;
char phone[20];
char tele[20];
};该结构体表示朋友的姓名、出生日期、性别、固定电话号码、移动电话号码
定义整型变量i,N表示行数,K表示给出的数,number
输入N
定义结构体类型users[N]
for(i 0 to N-1)
输入姓名、出生日期、性别、固定电话号码、移动电话号码
输入K
for(i 0 to K-1){
输入number
if(number在0到N-1之间)
输出姓名 固话 手机 性别 生日
else
输出Not Found
}
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
因为定义的sex是字符型变量,不是字符型数组,在上一个数组输完后有空格,要把空格吸收。
二、截图本周题目集的PTA最后排名。
三、阅读代码(找两篇优秀代码贴图展示,先描述题目,再贴代码,可自己在里面加注释)
- 1.时间换算
%02d中2是宽度,如果整数不够2列就补上0,比如printf("%02d" ,3);结果就是03,如果大于2没有影响printf("%02d",1234);结果就是1234。 - 2.学生情况
该代码用共用体将男女生的情况联系在一起,又在共用体中嵌套结构体把女生的多个项目联系在一起,整个代码使人一眼可以了解清楚,条理清晰,层次分明。
四、本周学习总结
1.总结本周学习内容。
1.1结构变量与结构指针作为函数参数的区别
结构变量作为参数可以传递多个数据且参数形式较简单。
1.2函数嵌套
结构化程序设计主要原则:自顶向下,逐步求精,函数实现。
注意问题:现值函数的长度,避免函数功能的重复,减少全局变量的使用。
1.3递归函数
- 定义:函数自己调用自己的方式
- 编写递归函数的两个关键点:递归出口,递归式子。
在编写程序时只给出运算规律,具体实现细节应该让计算机去实现处理,读者不要钻到细节的实现上去,否则会实现细节的泥沼中很难理出头绪。
1.4共用体
- 定义:使几个不同的变量共占同一段内存的结构。
- 形式:
union 共用体名{
成员表列
}变量表列;
1.5枚举类型
- 若一个变量只有几个可能的值,可以定义枚举类型,变量的值只限于列举出来的值的范围内。
- 形式:enum 枚举名{枚举变量表};
2.罗列本周一些错题。
实参是a[9]的地址,形参应该也是地址,A,B为数组,是正确的,C为指针,正确,而D是一个整型变量,错误。