配列を大きい順に並び替えるプログラムを作りたいのですがうまく動きません
どこが間違っているのか教えてください```lang-<c>
コード#include<stdio.h>
int max_index(int a[] , int s , int e){ // 配列の最大値の添え字を返す
int i;
int c = 0;
for(i = s-1; i < e-1; i++){
if(a[i] >= a[i+1]){
a[i+1] = a[i];
}
else{ a[i+1] = a[i+1];
}
while(a[i+1]!=a[c]){
c = c + 1;
}
}
return c;
}
void swap(int a[], int i, int j){ // 配列のi番目とj番目の値を交換する
int x;
x = a[i-1];
a[i-1] = a[j-1];
a[j-1] = x;
}
void sort(int a[], int s, int e){ // 配列を値の大きい順に並び替える
while(s<=e){
swap(a,s,max_index(a,s,e)+1);
s = s+1;
}
}
main(){
int a[5] = {5,8,9,1,2};
printf("%d " ,max_index(a,1,5));
sort(a,1,5);
printf("%d %d %d %d %d",a[0],a[1],a[2],a[3],a[4]);
}
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/06/18 14:06
退会済みユーザー
2015/06/18 14:11