Cで数列を並び変えたいのですが

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
,プログラム初心者

Cで数列を並び変えたいのですが

#1

投稿記事 by ,プログラム初心者 » 15年前

タイトルの通り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;
}

よろしくお願いします。

box

Re:Cで数列を並び変えたいのですが

#2

投稿記事 by box » 15年前

入れ替え後の結果は、どうなるのが正しいのですか?
0と1だけからなる入力データだと、正しい結果を得ているかどうかが
わかりづらそうです。
入力データをすべて異なる数値にして、ロジックを考え直してみては
いかがでしょうか。

プログラム初心者

Re:Cで数列を並び変えたいのですが

#3

投稿記事 by プログラム初心者 » 15年前

お早い回答ありがとうございます。
わかりました。入力データを変更して考え直して見ます。

sizuma

Re:Cで数列を並び変えたいのですが

#4

投稿記事 by sizuma » 15年前

あと、5つぐらいでまずは考えてみるのはどうでしょうか?

まずは規約をよんでください。
http://dixq.net/board/board.html

僕にはどういう順で並べ替えたいのか分からないです。
とりあえずorderの要素の数順に表示したいだけだったら

printf("%d",a[order])

で十分なんじゃないかな?と思います。
何も書いてないけど、コードから察するに配列の中身も入れ替えたいんだろうけど。

プログラム初心者

Re:Cで数列を並び変えたいのですが

#5

投稿記事 by プログラム初心者 » 15年前

すいません。規約を読むのを怠っていました。
お二方の意見を参考に自分なりに考え直してみます。機会があればまた質問させていただきます。
ありがとうございます。

閉鎖

“C言語何でも質問掲示板” へ戻る