C言語の並び替えについての質問です。
Posted: 2009年10月31日(土) 12:44
「14歳から始めるC言語ゲームプログラミング」という本で勉強をしているものです。
九つの要素を定義して隣接する値の大小関係を比較して並び替えるというところですが
交換の関数の考え方があまりよく分かりません。詳しく説明していただける方がいらっしゃいましたら
ご教示お願い申し上げます。
int main(void)`
int hako[9]={8,4,2,3,1,9,5,7,6};
int irekaeta;
do{
irekaeta=0
for(int i=0;i<8;i=i+1){
if(hako>hako[i+1]){
int a=hako;
[color=Red" size="2]hako=hako[i+1];
hako[i+1]=a;
irekaeta=1;[/color]
}
}
for(int i=0;i<9;i=i+1){
printf("%d",hako);
}
printf("\n");
}while(irekaeta==1)
}
赤い部分が分かりません。aをhakoであると定義して、さらにhakoがhako[i+1]であると定義して
hako[i+1]がaであると定義すると入れ替わるのは何故でしょうか。
説明お願いします。
九つの要素を定義して隣接する値の大小関係を比較して並び替えるというところですが
交換の関数の考え方があまりよく分かりません。詳しく説明していただける方がいらっしゃいましたら
ご教示お願い申し上げます。
int main(void)`
int hako[9]={8,4,2,3,1,9,5,7,6};
int irekaeta;
do{
irekaeta=0
for(int i=0;i<8;i=i+1){
if(hako>hako[i+1]){
int a=hako;
[color=Red" size="2]hako=hako[i+1];
hako[i+1]=a;
irekaeta=1;[/color]
}
}
for(int i=0;i<9;i=i+1){
printf("%d",hako);
}
printf("\n");
}while(irekaeta==1)
}
赤い部分が分かりません。aをhakoであると定義して、さらにhakoがhako[i+1]であると定義して
hako[i+1]がaであると定義すると入れ替わるのは何故でしょうか。
説明お願いします。