二维数组怎么遍历呀 大神们
一个数组a[][]={{a,b,c},{d,e},{f,g,h},{i,j},{k,l,m},{o,p,q}}现在要把a,d,f,i,k,o放到第一个数组中
把a,d,f,i,k,p放到第二个数组
......
把c,e,h,j,m,q放到最后一个数组
就是从{a,b,c},{d,e},...,{o,p,q}里各取一个元素组成一个数组的元素,把所有组合都表示出来
怎么做呀 求大神指教
2015-07-10 19:22

2015-07-10 19:33
2015-07-10 22:43
程序代码:char *a[]={" ","abc","de","fgh","ij","klm","opq"};
char m;
char *p;
void show()
{ printf("%c%c%c%c%c%c ",*(p+1),*(p+2),*(p+3),*(p+4),*(p+5),*(p+6));
}
void permutate(int x,char *y)
{ int i;
if (x>6)
{ show();
return;
}
for(i=0;i<=strlen(a[x])-1;i++)
{ *(p+x)=*(a[x]+i);
permutate(x+1,i);
}
}
void main()
{
system("cls");
p=m;
permutate(0,1);
getch();
}
2015-07-11 12:00
程序代码:#include <stdio.h>
int main( void )
{
const char a[6][3] = {{'a','b','c'},{'d','e'},{'f','g','h'},{'i','j'},{'k','l','m'},{'o','p','q'}};
for( size_t i=0; i!=3*2*3*2*3*3; ++i )
printf( "%c%c%c%c%c%c\n", a[0][i/(2*3*2*3*3)%3]
, a[1][i/(3*2*3*3)%2]
, a[2][i/(2*3*3)%3]
, a[3][i/(3*3)%2]
, a[4][i/(3)%3]
, a[5][i/(1)%3] );
return 0;
}
2015-07-13 08:51