【第13题】给定三个数 a,b,c,从小到大输出这三个数

给定三个数 a,b,c,从小到大输出这三个数,这个怎么做呀
数字范围是不定的

#include <stdio.h>
void swap(int* x, int *y) {            // (1)
    int tmp = *x;
    *x = *y;
    *y = tmp;
}
int main() {   
    int a, b, c;
    while(scanf("%d %d %d", &a, &b, &c) != EOF) {
        if(a > b) swap(&a, &b);        // (2)
        if(b > c) swap(&b, &c);        // (3)
        if(a > b) swap(&a, &b);        // (4)
        printf("%d %d %d\n", a, b, c);
    }
    return 0;
}
  • $(1)$ swap这个函数用来实现对两个整数的交换,int *x代表一个指针,指向的是某个变量的地址,函数体执行的就是交换两个变量的操作。其中,*x代表的是取地址中的值。
  • $(2)$ $(3)$ $(4)$ 布对应的就是上文 解题思路 中提到的三步交换,由于swap函数的参数是指针,这里需要用&符号把变量转换成它的地址,即指针。