プログラムの勉強のための問題集 - 問題7.配列のデータをソートしなさい(1)(解答)
■解答■
#include <stdio.h>
int main(){
int array[] = { 7, 3, 9, 2, 10, 8, 6, 5, 4, 1 };
for(int i=0; i<10; i++){
int mini = 100;
int index = 0;
for(int j=i; j<10; j++){
if( mini > array[j] ){
mini = array[j];
index = j;
}
}
int tmp = array[i];
array[i] = array[index];
array[index] = tmp;
}
for(int i=0; i<10; i++){
printf( "%3d", array[i] );
}
return 0;
}
■解説■
まずは、配列の i 番目の要素から最後までの間で
一番小さい数字を探し、index に一番小さい数字の添字を格納しておきます。
次に、一番小さい数字と配列の i 番目の要素を入れ替えることで
ソートをしていっています。
このページのトップはこちら
です。