A1.
算法说明:
1、定义一个结构类型team,代表一组警卫;结构成员为两个整形数i和j,由警卫的编号组成。
2、定义一个结构类型为team的数组men[]来记录可搭档的每组警卫的编号。
3、以字符格式输入,有字符型数组num[]接收,首先接收第一个警卫的编号字符,遇到空格符后,接收第二个警卫的编号字符;遇到回车后,接收下一组警卫的编号。(由标志flag来确定)
4、由函数change()和chartonum()将num[]中的字符转换为数字,存入men[]中的各个成员变量中;
5、由函数line()使用“字典序法”对各组的“检查计算的顺序”进行排序。
6、当排好一次序时,就进行一次计算分析,有函数plan()完成,返回这次能够成功安排值班工作的最大组数;循环计算各次的结果。
7、比较记录下最大组数maxnum和相关的各组q_max[];然后输出。
A4.
算法说明:
1、数据有文件test.txt输入,以字符形式依次存入数组num[]中。
2、通过函数change()和chartonum()将字符装换为整形数(同题1)存在m、n中,m为带50元钞票的观众人数,n为带100元钞票的观众人数。
3、由函数ticketline()列出所有组合,存在数组p[]中,以0代表50元的观众,1代表100元的观众。由“字典序法”排列出所有组合。
4、每排列出一种组合方式,就由函数ticketbuy()进行计算分析,使用标志flag表示售票处的50元钱的张数,如果为负则排列出错,返回0,说明组合不可行;如果非负,返回1,则说明组合可行。
5、记录下可行的次数,并输出。
A5.
算法说明:
1、定义两个结构类型,结构equiment表示全部设备的情况,结构runner表示需要运行的设备的情况。
2、定义一个结构为equiment的数组equ[],以字符的型式输入名称,以整形数字的型式输入额定电量;分别存在equ[]的成员变量中。
3、定义一个结构为runner的数组user[],以字符的型式输入名称,以整形数字的型式输入开、关时间;分别存在equ[]的成员变量中。 与此同时,由函数search()在equ[]中搜索相应的设备,将其额定电量记录在user[]的成员变量中。
4、具体的工作计算过程由函数work()完成;比较每个时段的用电总量,并记录下最大的用电总量和时间,如果用电总量超过极限值,怎输出超过时间和所需总量;如果各时段都没超过,则输出用电总量。