帮忙解一道C语言题

来源:百度知道 编辑:UC知道 时间:2024/07/05 20:13:44
程序要求如下:
1.从1-9这9个数中选4个组成一组,求出所有情况;
2.将含有3个或4个奇数的组除掉,如将(1,3,5,7),(2,5,7,9)除掉
3.将含有3个或4个偶数的组除掉,如将(2,4,6,8),(1,2,4,6)除掉
4.将与(4,5,6,7)及与其有3个数相同的组除掉,如将(3,4,5,6)除掉
5.输出剩下的组合情况
请高手再编一道
该题由彩票引发,要求如下:
1.从1-33选任6个数组成一组
2.将其中全由奇数或全由偶数组成的组除掉
3.将4个或4个以上相连的数组成的组除掉,如将(1,2,3,4,5,6),(1,2,3,4,6,7)等除掉
3.编一个函数,其功能是将给定的组及与其有5个相同数的组除掉,如给定
(2,6,15,27,29,32),将(1,6,15,27,29,32)等除掉;该函数最好可以同时处理给定的N个数组
4.输出剩下数组

/*
你的限制条件决定m只能在取3,4。如果,小于三,你的条件没有意义,如果大于4则,得到的组合为空(因为,大于5个的连续数中,至少有三个偶数,或者奇数)。不过,我对程序更改了一下。
输入为:
Please input n:9
Please input m:4
输出结果为:
(1,2,4,5) (1,2,4,7) (1,2,4,9) (1,2,5,6) (1,2,5,8) (1,2,6,7) (1,2,6,9) (1,2,7,8)
(1,2,8,9) (1,3,4,6) (1,3,4,8) (1,3,6,8) (1,4,5,8) (1,4,6,9) (1,4,7,8) (1,4,8,9)
(1,5,6,8) (1,6,8,9) (2,3,5,6) (2,3,5,8) (2,3,6,7) (2,3,6,9) (2,3,7,8) (2,3,8,9)
(2,4,5,9) (2,4,7,9) (2,5,6,9) (2,5,7,8) (2,5,8,9) (2,6,7,9) (3,4,6,9) (3,4,7,8)
(3,4,8,9) (3,5,6,8) (3,6,8,9) (4,5,8,9) (5,6,8,9)
程序如下:
*/
#include <stdio.h>
#include <stdlib.h>

void output(int n[],int length)
{
int i;
printf("(%d",n[0]);
for(i=1;i<length;i++)
printf(",%d",n[i]);
printf(")");
}
void findgroup(int a[],int j,int n,int i,int flag[],int m)
{
if((j>1)&&(a[j-2]+1==a[j-1]))
i++;
for(;i<=n;i++){
i