3つの整数を入力し、プログラムにデータを小さい順にx y zに入れて出力するように要求します(C)


まず硬直した方法を書きます.
#include

//      ,    x y z ,                 x y z ,     

int main()
{
	int x, y, z, t;
	printf("      
"
); scanf("%d%d%d", &x, &y, &z); if (y <= x&&x <= z)t = x, x = y, y = t; else if (x <= z&&z <= y)t = y, y = z, z = t; else if (y <= z&&z <= x)t = x, x = y, y = z, z = t; else if (z <= y&&y <= x)t = x, x = z, z = t; else if (z <= x&&x <= y)t = y, y = x, x = z, z = t; printf("%d %d %d", x, y, z); return 0; }

コードの簡略化:
3つの数をインクリメンタルソートするだけなので、ソートアルゴリズムを使用する必要はありません.3つのデータをそれぞれ3回比較し,スイッチ(t変数)を借りて順序の合わない2つの数を交換すればよい.
int main()
{
	int x, y, z, t;
	printf("      
"
); scanf("%d%d%d", &x, &y, &z); if(x > y){ t = x; x = y; y = t; } if(x > z){ // , x t = x; x = z; z = t; } if(y > z){ t = y; y = z; z = t; } printf("%d %d %d", x, y, z); return 0; }