如何将输入的数字排序并打印出来
承接上篇博客中输出数组内元素最大值的内容
本篇博客向大家分享如何将我们输入的三个数字进行大小排序并打印出来
1.scanf函数
int main()
{
int a = 0;
int b = 0;
int c = 0;
scanf("%d%d%d", &a, &b, &c);
既然需要输入,那就要用到scanf函数来接受我们输入的数字
- 要使用指针变量,因为这里的scanf需要改变我们的a,b,c
- scanf的头文件是 <stdio.h>
2.tmp盒子
相信大家在自己的学习中已经接触过使用tmp来进行大小比较的代码了
什么?没有?
那也没关系,基本实现的原理易懂的很!
if (a < b)
{
int tmp = a;
a = b;
b = tmp;
}
- 把a的值赋给tmp
- 因为a小于b,所以我们让a等于更大的值
- 再使用tmp把原来是a的值赋给b
这样就写好了一个大小比较和交换的语句了
我们只需要CTRL+C然后+V
稍微改改里面的abc
就能写出下面的完整代码
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
scanf("%d%d%d", &a, &b, &c);
if (a < b)
{
int tmp = a;
a = b;
b = tmp;
}
if (a < c)
{
int tmp = a;
a = c;
c = tmp;
}
if (b < c)
{
int tmp = b;
b = c;
c = tmp;
}
printf("%d>%d>%d", a, b, c);
return 0;
}
运行一下
这里需要注意,我们输入数字的时候需要用空格隔开两个数字
因为这串代码实现的是从大到小排列
所以我们可以打印的时候在每个数字之间加个>号
这里显示的内容和下面这行代码%d中间的内容是一致的
printf("%d>%d>%d", a, b, c);
比如我把中间的>改成#号,打印出来也是一致的
结语
这串代码如果继续复制粘贴的话可以实现不止3个数字的大小排列并打印
不知道能不能用自定义函数实现这个功能?
点个赞再走呗,万分感谢!
|