dポイントプレゼントキャンペーン実施中!

入力された数字を大きい順に並び替えるプログラムを作っています。
うまい方法が思い浮かばないのですが、うまくできる方がいたら教えて頂きたいです。
途中まで作ったプログラムは以下の通りです。
#include <stdio.h>
void sort(int *x,int *y,int *z, int *j);
int main(){
int a,b,c,d;
printf("4つ数字を入力せよ\n");
printf("[1] ");scanf("%d",&a);
printf("[2]");scanf("%d",&b);
printf("[3]");scanf("%d",&c);
printf("[4]");scanf("%d",&d);

sort(&a,&b,&c,&d);
printf("%d,%d,%d,%d\n",a,b,c,d);
return 0;
}
void sort(int *x,int *y,int *z, int *j){
int i,l,m;
if(*x<*y){
i=*y;
*y=*z;
*x=i;
}
if(*y<*z){
l=*z;
*z=*y;
*y=l;
}
if(*z<*j){
m=*j;
*j=*z;
*z=m;
}
}

A 回答 (3件)

スワップ関数作ったほうがいいよ

    • good
    • 0
この回答へのお礼

できました。ありがとうございます。

お礼日時:2020/07/22 23:32

配列に突っ込んで qsort.

    • good
    • 0

並びの先頭かお尻から次との大小を比較し、その結果で入れ替える、


これを何度も繰り返していき、入れ替え回数がゼロになれば完成です。
先ずは、この処理手順を日本語で書いて、それを提示してください。
これがプログラマー上級者の仕事です。
これをプログラム言語で表すのは、下級者の仕事です。
プログラム言語の列記だけでは、何をしようとしているのかが読み切れません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!