(PAT乙级)1055 集体照(C语言实现)

 

总结:

1、我的问题在于最后如何输出上找不到规律。输出之前的思路都是正确的。所以借鉴了柳婼小姐姐的C++代码的思路,然后写了C语言的程序。

2、总体思路如下:很明显这题肯定要用结构体去解决,但使用结构体让我疑虑的是因为名字是字符串,所以我需要定义一个字符数组,我并不清楚是否可以在结构体里定义字符数组,上网百度后是可以的。所以使用结构体进行成对的名字和身高输入。之后使用qsort函数对结构体进行二级排序。关于qsort中具体的比较函数cmp的书写见“德才论1015”题里的链接。到这里已经完成了身高的排序。之后的输出应该这样来:首先确定每排人数m(最后一排的特殊性,如果是最后一排,人数为n/k+n%k;其他排人数为n/k),定义一个二维字符数组来储存每排要输出的名字。以每排中间点为关键点,中间的人对应身高最高的人的名字,然后排左边从m/2-1开始--,对应的名字是+2的;排右边从m/2+1开始--,对应的名字是+2。便完成了一排的排序,然后进行当排的名字输出。

3、注意字符串大小的比较要使用strcmp函数。复制字符串要使用strcpy函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值