4つの数字を用いて重複することなく並べる
題名のとおりなのですが
例えば{1,2,3,4},{2,3,4,1}などです。
これら24通りを[24][4]の要素をもつ2次元配列に入れたいのですがどうすればいいのでしょうか?
一応自分で作ってみたのですが作ってみていかにも冗長であると感じています。
アドバイス、回答よろしくお願いします。
#include <stdio.h>
int main(void){
int i,j,n=5,m,p;
int l[24][4]={{1,2,3,4},{2,1,3,4},{2,3,1,4},{3,2,1,4},{3,2,4,1},{4,2,3,1}};
for(i=0;i<6;i++){
for(j=0;j<3;j++){
n++;
if(!j)for(p=0;p<4;p++)l[n][p]=l[i][p];
else for(p=0;p<4;p++)l[n][p]=l[n-1][p];
m=l[n][0];
l[n][0]=l[n][1];
l[n][1]=l[n][2];
l[n][2]=l[n][3];
l[n][3]=m;
}
}
for(i=0;i<24;i++){
for(j=0;j<4;j++){
printf("%d",l[i][j]);
}
printf("\n");
}
return 0;
}
お礼
printfで実現できるんですね。 参考URLまで有難うございます。 無事解決できそうです。有難うございました。