選択ソートを利用し、データを小さい順に並べるプログラムについて
Posted: 2015年10月09日(金) 19:17
当方まだ右も左も分からないプログラム初心者です。
このプログラムに1番目から順番に10~1までの数字を入力すると、6番目に入力した5が先頭に出てきてしまいます。
理由と対処法のご教授をお願いします。
このプログラムに1番目から順番に10~1までの数字を入力すると、6番目に入力した5が先頭に出てきてしまいます。
理由と対処法のご教授をお願いします。
/* データの整列 */
#include <stdio.h>
#define MAXNUM 10
int main(void)
{
int x[MAXNUM];
int i,ii,m,max,yobi;
for (i = 0; i < MAXNUM; i++){
printf("%d番目の整数:",i + 1);
scanf("%d",&x[i]);
}
for(i = MAXNUM - 1;i > 0; i--){
max = x[0];
for(m = 0;m < i; m++)
if(x[m] >= max){
max = x[m];
ii = m;
}
if(i != ii)
yobi = x[i];
x[i] = x[ii];
x[ii] = yobi;
}
/* 整列済みのデータの表示 */
for(i = 0;i < MAXNUM; i++)
printf("%3d", x[i]);
printf("\n");
return (0);
}