一、PTA实验作业
题目1:7-1 计算职工工资
-
本题PTA提交列表
-
设计思路
struct emp
{
char name[10];
float jbg;
float fdg;
float zc;
}emp[n];//该结构为职员信息,包括姓名、基本工资、浮动工资和支出
输入职员信息
输出时计算实发工资,实发工资=基本工资+浮动工资-支出
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
题目看差了,还以为最多10个人,就把数组定义成11了
题目2:7-2 时间换算
-
本题PTA提交列表
-
设计思路
struct time{
int h;
int m;
int s;
};//时间结构体,包括时分秒
输入起始时间和要加的时间n
if 秒数加上n后超过或等于60就进位
同样的 if 分钟数加上进的位后超过或等于60 就进位
if 小时数超过或等于24,就减24
end
end
else
直接将n与秒数相加
输出,不够两位补0
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
忽略了小时满24就归0
题目3:7-6 通讯录的录入与显示
-
本题PTA提交列表
-
设计思路
struct birthday{
int year,month,day;
};//出生时间,包括年月日
struct adress{
char name[11];
struct birthday birth;
char sex;
char fix[17],mob[17];
};//通讯录信息,包括姓名,出生时间,性别,固话和手机
struct adress m[11]
输入通讯录信息
开始查询通讯录,将要查询的数放在一个数组里
开始遍历数组
if 该数在查询范围,那么就输出该数代表的通讯录信息
else 输出Not Found
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
忘记在月份和日期前补0,看了挺久的,才发现
二、截图本周题目集的PTA最后排名。
三、阅读代码
1.线性表用顺序实现。
include <stdio.h>
#define N 10
typedef struct sqlist
{
int data[N];
int last;
}LIST;//定义结构放线性表
//将函数分装,使程序的可读性增强,一目了然
int Total(List list)//实现奇数求和
{
int sum=0;
for(int i=0;i<=list.last;i++)
if(list.data[i]%2)//判断是否为奇数
sum+=list.data[i];
return sum;
}
void Show(LIST list)//打印线性表
{
int i;
for(i=0;i<=list.last;i++)
printf("%3d", list.data[i]);
printf("
");
}
int main()//主函数简洁,只做输入输出和函数调用
{
LIST list;
int i,sum;
for(i=0;i<=5;i++)
list.data[i]=i;
list.last=5;
Show(list);
sum=Total(list);
printf("sum=%3d
",sum);
return 0;
}
2.判断回文字符串
这是军霖的代码写得非常简洁,他将自增自减和判断用一条语句就解决了,而我就用了三条语句,他的代码风格值得我学习
四、本周学习总结
1.总结本周学习内容。
- 结构体和数组一样都是构造型数据类型,和数组不同的是,结构体可以处理不同类型的数据。
- 共用体是一种多变量共享存储空间的构造类型,它允许几种不同的变量共用同一存储空间。
- 共用体和结构体的区别:
1.结构体每一位成员都用来表示一种具体事务的属性,共用体成员可以表示多种属性(同一存储空间可以存储不同类型的数据)。
2.结构体总空间大小,等于各成员总长度,共用体空间等于最大成员占据的空间。
3.共用体不能赋初值。 - 枚举类型是指变量的值可以全部列出,定义一个枚举变量后,变量的值确定在定义之中。它和结构体、共用体的区别在于,枚举元素是常量,只能在定义阶段赋值。
- 递归的意思就是函数自己调用自己本身,或者在自己函数调用的下级函数中调用自己。递归函数必须要有两个关键点,1是递归出口 ,2是递归式子
2.罗列本周一些错题。
函数调用时名字写错了