プログラミング+α学習ブログ

勉強したことの備忘録です。

三つの整数を昇順に並べ替える

#include <stdio.h>

/*--- nx, nyが指すオブジェクトの値を交換 ---*/
void swap(int *nx, int *ny)
{
    int temp = *nx;
    *nx = *ny;
    *ny = temp;
}

/*--- *n1≦*n2≦*n3となるように並べ替える ---*/
void sort3(int *n1, int *n2, int *n3)
{
    if (*n1 > *n2) swap(n1, n2);
    if (*n2 > *n3) swap(n2, n3);
    if (*n1 > *n2) swap(n1, n2);
}

int main(void)
{
    int na, nb, nc;
    
    puts("三つの整数を入力してください。");
    printf("整数A:"); scanf("%d", &na);
    printf("整数B;"); scanf("%d", &nb);
    printf("整数C;"); scanf("%d", &nc);
    
    sort3(&na, &nb, &nc);
    
    puts("これらの値を昇順に並べ替えました。");
    printf("整数Aは%dです。\n", na);
    printf("整数Bは%dです。\n", nb);
    printf("整数Cは%dです。\n", nc);
    
    return (0);
}

実行結果

三つの整数を入力してください。
整数A:32
整数B;48
整数C;15
これらの値を昇順に並べ替えました。
整数Aは15です。
整数Bは32です。
整数Cは48です。