タイトルの通りCで数列の並び替えをしたいのですが、プログラムを実行すると表示が
0000001100100001
と表示され、入れ替えの場所も1の数も合致しません。
修正する必要があると思うのですが、どうしても自分では間違いが見つかりません。助けてください!
#include <stdio.h>
int main(void)
{
int a[16] = {0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0};
int order[16] = {0,2,3,1,12,5,9,8,10,11,7,15,4,14,13,6};
int i;
for(i=0;i<16;i++)
{
int x = order;
int y = a[x];
a = y;
printf("%d",a);
}
return 0;
}
よろしくお願いします。
Cで数列を並び変えたいのですが
Re:Cで数列を並び変えたいのですが
入れ替え後の結果は、どうなるのが正しいのですか?
0と1だけからなる入力データだと、正しい結果を得ているかどうかが
わかりづらそうです。
入力データをすべて異なる数値にして、ロジックを考え直してみては
いかがでしょうか。
0と1だけからなる入力データだと、正しい結果を得ているかどうかが
わかりづらそうです。
入力データをすべて異なる数値にして、ロジックを考え直してみては
いかがでしょうか。
Re:Cで数列を並び変えたいのですが
あと、5つぐらいでまずは考えてみるのはどうでしょうか?
まずは規約をよんでください。
http://dixq.net/board/board.html
僕にはどういう順で並べ替えたいのか分からないです。
とりあえずorderの要素の数順に表示したいだけだったら
printf("%d",a[order])
で十分なんじゃないかな?と思います。
何も書いてないけど、コードから察するに配列の中身も入れ替えたいんだろうけど。
まずは規約をよんでください。
http://dixq.net/board/board.html
僕にはどういう順で並べ替えたいのか分からないです。
とりあえずorderの要素の数順に表示したいだけだったら
printf("%d",a[order])
で十分なんじゃないかな?と思います。
何も書いてないけど、コードから察するに配列の中身も入れ替えたいんだろうけど。
Re:Cで数列を並び変えたいのですが
すいません。規約を読むのを怠っていました。
お二方の意見を参考に自分なりに考え直してみます。機会があればまた質問させていただきます。
ありがとうございます。
お二方の意見を参考に自分なりに考え直してみます。機会があればまた質問させていただきます。
ありがとうございます。