代码改变世界

PTA结构体作业

2018-01-22 21:54  西柚yu  阅读(984)  评论(0编辑  收藏  举报

一、PTA实验作业--结构体

1.

(1)

最终代码

(2)算法描述

定义一个结构体变量用来存放姓名,生日,性别,固话,手机, 定义一个结构体数组用来存放n条记录,依次输入;输入k,用for循环输入k个整数,并判断是否在0num-1之间,若在其中,则输出该编号的记录,不在输出not found

(3)问题分析

定义struct结构体变量时固话和手机类型弄错,为int类型,怎么也输不出结果,后来发现int没有那么大的范围,改为字符串输出;输入性别是为%c,写成了%s;判断k个整数是否在0-n-1之间时printf错在输出了a[i] 值,导致结果不正确,后发现时num,及时改正。

2.

(1)

最终代码

(2)算法描述

定义一个结构体变量用来存放n个朋友信息,输入n,动态分配存储空间,输入朋友信息,用选择比较法进行比较,将年龄大的放在前面,即birth值从小到大排列最后依次输出朋友信息,即为年龄从大到小顺序

(3)问题分析

在定义birth的时候,选用的是char类型,用strcmp进行比较,运行时出错,后发现birth6为数字,可直接定义类型long int;用选择排序法进行交换的时候将temp的类型定义为int,发现不对,改为定义为list,可实现整个结构体数组的交换;本题有部分错误,未找出

3.

(1)

最终代码

(2)算法描述

义结构体变量用来书本信息,动态分配数组用来存放n本书信息,依次输入书本信息;令最高价格max和最低价格min都为p[0],用一个for循环来判断,如果1n-1的其他本书的价格大于max,则将该书价格赋给max;如果1n-1的其他本书的价格都小于min,则将书价格赋给min输出最高、最低价格价格,书名。

(3)问题分析

for循环中有考虑过用冒泡法来比较大小,输出第一次比较的数值,发现此种做法不明智,使算法复杂化,后就改用maxmin来存放最小、最大值;本题出现答案错误,但是在dev上操作时又可运行出正确结果,以目前能力暂未发现错误在哪里。

二、同学互评