#include <stdio.h>
void deascend(int *x, int *y, int *z);
void swap(int *a, int *b);
int main(void)
{
int n1, n2, n3;
// (1)
deascend(&n1, &n2, &n3);
printf("%d, %d, %d\n", n1
, n2
, n3
);
return 0;
}
void deascend(int *x, int *y, int *z)
{
// (2)
if (*x < *y) swap(x, y);
if (*x < *z) swap(x, z);
if (*y < *z) swap(y, z);
}
void swap(int *a, int *b)
{
int tmp = *a;
*a = *b;
*b = tmp;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIGRlYXNjZW5kKGludCAqeCwgaW50ICp5LCBpbnQgKnopOwp2b2lkIHN3YXAoaW50ICphLCBpbnQgKmIpOwoKaW50IG1haW4odm9pZCkKewogICAgaW50IG4xLCBuMiwgbjM7CgogICAgcHJpbnRmKCJuMToiKTsgc2NhbmYoIiVkIiwgJm4xKTsKICAgIHByaW50ZigibjI6Iik7IHNjYW5mKCIlZCIsICZuMik7CiAgICBwcmludGYoIm4zOiIpOyBzY2FuZigiJWQiLCAmbjMpOwoKICAgIC8vICgxKQogICAgZGVhc2NlbmQoJm4xLCAmbjIsICZuMyk7CgogICAgcHJpbnRmKCIlZCwgJWQsICVkXG4iLCBuMSwgbjIsIG4zKTsKCiAgICByZXR1cm4gMDsKfQoKdm9pZCBkZWFzY2VuZChpbnQgKngsIGludCAqeSwgaW50ICp6KQp7CiAgICAvLyAoMikKICAgIGlmICgqeCA8ICp5KSBzd2FwKHgsIHkpOwogICAgaWYgKCp4IDwgKnopIHN3YXAoeCwgeik7CiAgICBpZiAoKnkgPCAqeikgc3dhcCh5LCB6KTsKfQoKdm9pZCBzd2FwKGludCAqYSwgaW50ICpiKQp7CiAgICBpbnQgdG1wID0gKmE7CiAgICAqYSA9ICpiOwogICAgKmIgPSB0bXA7Cn0K