最近在进行课程设计。题目是航空系统问题。对于其中最后一部分:退票与预订部分的程序设计有问题。希望达人指点下。
    我需要一个程序实现以下功能:
    两个数组:
    C1[]={A[1],A[2],.....}
    C2[]={B[1],B[2]......}
    如果某个数A[I]从C1[]中去掉。则从C2 []中挑选数字B[i1].B[i2].....加入C1顶替A[I]位置,原则如下:
    1.按照B[1].B[2]....顺序选;
    2.选中数字总和不得大于A[I];
    3.选中数字总和要尽最大可能接近A[I]。
    设计程序给出如何选择C2[]中的B[i1].B[i2].....,并输出i1,i2,...的值。如果A[I]小于所有B[]的值则输出“没有满足条件的数组”。
    另外我对C++不懂,希望能用C语言编写。
    我觉得可以设计一个程序,第一次调用能选择出B[i1]。再调用这个程序从数组
    C3[]={B[i1+1],B[i1+2]....}
中选择出B[i2]。。。反复调用,直到最后一个。但是我设计了很久都没有思路。关键在于C1,C2有多少个成员在设计中是不一定的,要看实际使用系统时,最后究竟有多少个人订了票和预订了票,不知道究竟应该设计为已知还是未知,还是我知识漏洞。所以循环体中循环条件不好设计。而且选择部分语句也不好设计。