二维数组怎么遍历呀 大神们
一个数组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}里各取一个元素组成一个数组的元素,把所有组合都表示出来
怎么做呀 求大神指教
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(); }
#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; }