解题思路:   详见代码

注意事项:   传参数时应为地址

参考代码:

#include<stdio.h>

int  swap(int* x, int* y)   //定义一个函数,用以交换变量

{

     int tem = 0;

    tem = *x;

    *x = *y;

    *y = tem;

}


int main(void)

{

    int a, b, c;

    scanf("%d %d %d", &a, &b, &c);

    if (a > b)

        swap(&a, &b);  //交换a b的值

    if (a > c)

        swap(&a,&c);   //交换 a c

    if (b > c)

        swap(&b,&c);  //交换 b c

    printf("%d %d %d\n", a, b, c);

    return 0;

}


点赞(0)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 4 条评论

五仁月饼 3年前 回复TA
@jinxiaojin 把a大于c改成a大于b,好好想想
极光 3年前 回复TA
要先交换旁边的,比如说a=2,b=3,c=1;这样if(a>b)不满足,进入if(b>c),交换后a=2,b=1,c=3;然后if(a>c)不满足就输出了。打印出来就是a=2,b=1,c=3.应该把判断if(a>c)模块放在if(b>c)模块的后面。
极光 3年前 回复TA
@jinxiaojin 要先交换旁边的,比如说a=2,b=3,c=1;这样if(a>b)不满足,进入if(b>c),交换后a=2,b=1,c=3;然后if(a>c)不满足就输出了。打印出来就是a=2,b=1,c=3.应该把判断if(a>c)模块放在if(b>c)模块的后面。
jinxiaojin 3年前 回复TA
#include<stdio.h>
int main()
{
	int a,b,c,t;
	scanf("%d%d%d",&a,&b,&c);
	if(a>b){
			t=a;
			a=b;
			b=t;
	}
	if(b>c)
		{
			t=b;
			b=c;
			c=t;
		}
		if(a>c)
		{
			t=a;
			a=c;
			c=t;
		}
printf("%d %d %d",a,b,c);
return 0;
}
/*********************/
可以请教一下我这个哪里错了吗?不明白为什么一直过不去