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是一个整型变量,错误。

posted @ 2017-12-24 18:50  yawlc  阅读(470)  评论(1编辑  收藏  举报