求C语言二维数组元素排列组合?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求C语言二维数组元素排列组合?相关的知识,希望对你有一定的参考价值。

例如一个3x3的二维数组我需要将3个0和6个1在其中的所有排列组合求出来,该怎样编写?如果二维数组是4x4或者更高呢?

只是0,1还好办,要是0-9,或者更多数字就不好弄,
你这个其实跟数组是一维或者二维关系不大,3*3二维跟9个的一维,组合数结果是一样的
这个用到绑定插入法,先将少的数字绑定,3个0,3个相对6个少点,
1.先将3个0,看成一个整体。插入到6个1中间。共7种插法,
2.2个0看成一个整体,插入,7种,在插入另外一个0,这是个这个0不能查到0的前,或者后,会跟之前的重复,6种,6*7=42种插法,
3.分开插,0不能相邻,101010/010101整体,向剩下的111里面查去,共2*4=8种
参考技术A 这个是什么意思啊?我不懂不懂你说的是什么意思,你这个要讲清楚啊。追问

一个3x3的二维数组,一共9个元素,其中3个0,6个1。
例如【0,0,1】【0,1,1】【1,1,1】或者【1,1,1】【1,0,0】【1,1,0】
就像这样,怎么求出所有排列组合的情况?
谢谢!

C语言中二维数组里统计不同元素出现的个数

比如二位数组 a,b,d
b,c,d
a,d,e
d,e,f
最后能统计出
a 2次
b 2次
c 1次
d 3次
e 1次
请给出代码,谢谢
我例子中的逗号不用 我只想知道怎么统计出现次数

#include <stdio.h>
#include <conio.h>
#include <malloc.h>

#define I 3
#define K 4

typedef struct mtab

char charr;
int times;
struct mtab * next;
tab;

int main()


char arr[I][K]='a','a','b','t','d','g','b','t','c','c','a','f';//3X4的字符数组
char* tp=(char*)arr;//用指针处理数组以方便遍历
tab * head=NULL,* p1=NULL,*p2=NULL;
int i;

for (i=(I)*(K);i;i--,tp++)

for(p2=p1=head;p1;p1=p1->next) //在链表查找当前指向的字符

p2=p1; //p2指向链表最后一个已经存在的表项
if(p1->charr==*tp) //找到了

p1->times++; //个数加1
break; //不再继续查找后面的表项



if(p1)
continue; //链表中已经查到结束本次循环

p1=(tab*)malloc(sizeof(tab)); //链表中还没有当前指向的字符
if(!p1) return 1; //分配内存时失败
p1->charr=*tp; //添加字符
p1->times=1; //初始化为1个因为是新加的
p1->next =NULL;
if(!head) //链表还没建立
head=p1;
else
p2->next=p1;


for(p1=head;p1;p1=p1->next) //打印结果
printf("%c %d次\n",p1->charr,p1->times);

getch(); //此语句以便能够看到结果,头文件 conio.h

return 0;
参考技术A #include <iostream>
using namespace std;
int main()
for(int i)
for(int j)
switch(s[][])
case a:
case b:
case c:
初学仅供参考
参考技术B 逗号也要输入的?

以上是关于求C语言二维数组元素排列组合?的主要内容,如果未能解决你的问题,请参考以下文章

js两个数组排列组合

求多个变量的排列组合程序-C/JAVA/PHP/ASP/PYTHON均可

在C语言中,如何输出一组数的排列组合

JavaScript 二维数组排列组合2

JavaScript 递归法排列组合二维数组

JavaScript 递归法排列组合二维数组2