C语言入门实战(6):int指针和相邻比较法排序
题目
从键盘输入任意4个整数,依次存放在变量a、b、c、d中,按照由大到小的顺序对a、b、c、d排序并输出。
提示
采用逐一比较法或相邻比较法。
要求
输入输出格式示例1:
输入:11 39 8 21<回车> 输出:39,21,11,8
输入输出格式示例2:
输入:191 -1 17 6<回车> 输出:191,17,6,-1
参考代码
#include <stdio.h> // 定义一个函数,保证函数调用后,x>=y void order(int *x, int *y) { if(*x < *y) { int t = *x; *x = *y; *y = t; } } int main() { // 输入4个整数,由大到小排序 int a,b,c,d; scanf("%d %d %d %d", &a,&b,&c,&d); // 保证a是最大者 order(&a,&b); order(&a,&c); order(&a,&d); // 保证b是b,c,d中最大者 order(&b, &c); order(&b, &d); // 保证c>=d order(&c, &d); //输出 printf("%d,%d,%d,%d", a, b, c, d); return 0; }
代码复盘
定义了一个函数void order(int *x, int *y),函数的参数接收int*类型。int*是int类型的指针,亦即即int值的地址。
头文件stdio.h中声明的scanf()和printf()是标准库中用于处理标准输入和输出的库函数。