C语言学习-菜鸟教程C经典100例-练习66

题目

输入3个数a,b,c,按大小顺序输出。


思路

利用指针方法。


代码

#include <stdio.h>

// 使用指针交换两个变量的值
void swap(int *x, int *y){
    int temp = *x;
    *x = *y;
    *y = temp;
}

// 对三个数进行排序
void sort(int *a, int *b, int *c){
    if(*a > *b){
        swap(a, b);
    }
    if(*a > *c){
        swap(a, c);
    }
    if(*b > *c){
        swap(b, c);
    }
}

int main(){
    int a, b, c;

    printf("请输入3个整数(以空格分隔):");
    scanf("%d %d %d", &a, &b, &c);

    printf("\n排序前:a=%d, b=%d, c=%d\n", a, b, c);

    // 排序
    sort(&a, &b, &c);

    printf("排序后(从小到大):a=%d, b=%d, c=%d\n", a, b, c);

    return 0;
}

输出结果

请输入3个整数(以空格分隔):1 3 2

排序前:a=1, b=3, c=2
排序后(从小到大):a=1, b=2, c=3

更多推荐