C言語
3. 整数配列data の,data[left]からdata[right-1]の最小値がある添字番号を返す関数
int min_ind_ary(const int data[ ], int left, int right)
で最小値が複数あるときは,一番小さい添字を返すようにするにはどうしたらよいのかわかりません?
途中経過↓
#include <stdio.h>
int min_ind_ary(const int data[10],int left,int right)
{
int i,min = 0;
for( i = 1; i < left; i++){
if(data[min] < data[i]) min = i;
}
return min;
}
void print_ary(const int data[10], int size){
int i;
for(i = 0; i < 10; i++){
printf("%2d", data[i]);
}
}
void sort_ary (int data[10], int size)
{
int i;
for(i = 0; i < size - 1; i ++ ) {
int min, work;
min = min_ind_ary(data, i, size);
work = data[min];
data[min] = data[i];
data[i] = work;
}
return;
}
int main(void)
{
int data[10] = {1, 6, 4, 8, 2, 3, 5, 9, 7, 4};
print_ary(data, 10);
sort_ary(data, 10);
print_ary(data, 10);
return 0;
}