一、PTA实验作业
题目1:6-4 结构体数组按总分排序
1. 本题PTA提交列表
2. 设计思路
struct student
{
int num;
char name[15];
float score[3];
float sum;
};//结构体student,带有num,name,score,sum变量
void calc(struct student *p,int n)
{
定义整型变量i用于循环
for i=0 to i<n i++,p++
p->sum=(p->score[0])+(p->score[1])+(p->score[2])对各分数进行相加
end
}
void sort(struct student *p,int n)
{
定义整型变量i,j用于循环,temp用于赋得大值的下标
struct student change定义结构变量change用于交换
for i=0 to i<n i++选择排序法
temp=i
for j=i+1 to j<n j++
若p[j].sum >p[temp].sum
则temp=j;
change=p[temp];
p[temp]=p[i];
p[i]=change; //交换
end
}
代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
数据有进行调换但是调换一部分正确一部分不正确
自己调试后发现是条件的设定有问题
自己对条件的设定进行修改为if(p[j].sum >p[temp].sum )后才输出正确
题目2:7-2 时间换算
1. 本题PTA提交列表
2. 设计思路
struct time{
int hour;
int minute;
int second;
};//定义结构time,带有小时,分钟,秒变量
主函数:
struct time s定义结构变量s
定义整型变量n用于存放整秒数,hour,minute,second用于存放计算后的小时,分钟,秒值
输出hour,minute,second的值
输入n的值
second=(s.second+n)%60;//计算秒的输出数值
minute=(s.minute+(s.second+n)/60)%60;//计算分钟的输出数值
hour=s.hour+(s.minute+(s.second+n)/60)/60;//计算小时的输出数值
若hour=24是,即超过23:59:59就从0点开始计时
hour=0把0赋给hour
输出hour,minute,second的值
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
自己的计算式子一开始不正确,自己尝试用数据代入思考就发现问题
后自己就引入变量存放最终数值
题目3:7-6 通讯录的录入与显示
1. 本题PTA提交列表
2. 设计思路
struct imformation{
char name[100];
char birthday[100];
char sex;
char ch[100];
char sh[100];
};//定义结构体信息,带有变量名字,生日,性别,固定电话,手机
主函数:
struct imformation s[100]定义结构体数组
int i,j,N,K,num定义循环变量i,j,N、K用于输入数据的数量,num用于赋予后面查找的数
输入N的值
for i=0 to i<N i++
输入一系类值对结构体数组赋值
end
输入K的值
for j=0 to j<K j++
输入num的值
当num>=0且num<N即找到时
按要求输出第N+1组数据
否则
输出Not Found
end
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
自己在一开始打代码输出正确后就提交到pta,但是pta显示部分正确
一开始自己以为是数组长度的问题,但是改大之后还是部分正确,但是自己的数组已经完全足够
自己用错误点Dev-c++调试运行感觉没错误,在阅读别人代码后,发现他们的代码与自己的较大区别就是在出生这里
他们直接以定义字符串的形式存放所有,而自己是分别定义年月日的整型变量
自己用他们的方法重新定义后发现pta才全部正确,但是感觉自己原先的定义方式输出也正确,没觉得有多大不同
为什么用字符串的定义才全部正确?
二、截图本周题目集的PTA最后排名
三、阅读代码
四、本周学习总结
1.总结本周学习内容
结构体、共用体、枚举这种构造数据类型特点
递归函数原理
2.罗列本周一些错题