C语言话费选择编程,帮帮忙。。。。。解决了给他充50块话费。。。

还有

那要求的数组输入的组数也是我输入的,,,,,下面一个例子;前面的大致相同(随机输出的)的,只是,后面的要求还做的比较不一样而已,,你做下比较。。

#include

#include

int  same_state=0;            //包含状态位

void findout(int a[],int n,int m,int r,int q[],int **BB,int bb);

void main()

{

int n,r;int *p,*q;

int b,bb;int **B;        //存储要删除的数组

printf("要找的不同的整数个数:");

scanf("%d",&n);

p=(int*)malloc(n*sizeof(int));

printf("输入%d个不同的整数:",n);

for(int i=0;i

{

scanf("%d",&p[i]);

}

printf("输入要找元素组合的个数:");

scanf("%d",&r);

q=(int *)malloc(r*sizeof(int));

printf("\n输入你将要输入的数组个数:");          //根据你的例子有两个数组,这里应该输入2

scanf("%d",&bb);

B=(int **)malloc(bb*sizeof(int*));

for( i=0;i

{

B[i]=(int *)malloc(sizeof(int));

B[i][0]=0;

printf("请输入第%d个数组:",i+1);

for(int j=2;1;j++)

{

scanf("%d",&b);

if(b==0) break;                                   //每输入一个数组后请输入一个0来结束输入

else

{

B[i]=(int *)realloc(B[i],j*sizeof(int));

B[i][j-1]=b;

B[i][0]++;

}

}

}

findout(p,n,r,r,q,B,bb);

}

void findout(int a[],int n,int m,int r,int q[],int **BB,int bb)

{

for(int i=n;i>=m;i--)

{

q[m-1]=a[i-1];

if(m>1)

findout(a,i-1,m-1,r,q,BB,bb);

else

{

/*---这段是比较,如果输出数组中包含了其中一项要删除的数组,same_state将变为b,否则仍然是0---*/

same_state=0;

for(int x=0;x

{

for(int y=0;y

{

if(same_state!=y) break;

for(int z=0;z

{

if(q[z]==BB[x][y+1])

{

same_state++;

}

}

}

if(same_state==BB[x][0]) break;

else              same_state=0;

}

/*---------------------------------------------------------------------------------*/

if(same_state!=0)

{

for(int j=r-1;j>=0;j--)

printf("%d   ",q[j]);

putchar('\n');

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值