【C初阶】三个数从大到小输出最详细讲解

简介: 三个数从大到小输出最详细讲解

 目录

1.大致写出代码的轮廓

2.逻辑引导

3.完整代码展示与调试:


1.大致写出代码的轮廓

//代码块1
int main() {
  int a = 0;
  int b = 0;
  int c = 0;
  int d = 0;
  scanf("%d %d %d", &a, &b, &c);
  printf("%d %d %d",a,b,c );
  return 0;
}

image.gif

2.逻辑引导

以如上代码为参考,如果想进一步实现从大到小的排列该如何处理呢?

需要比较a,b,c的大小,并将最大值赋给a,将最小值赋给c,剩下的值赋给b;

那么就需要实现三个变量之间的转换:

三个变量该如何转换呢?

两杯都盛有不同颜色水的杯子,如果想交换两个杯子中的水该如何交换呢?

那么必然需要第三个空杯子

image.gif编辑

//代码块2
  if (a < b)
    t = a;
    a = b;
    b = t;

image.gif

在代码块1中加入如上代码块2即可实现a与b的转换,

上面我们比较了a与b的大小,要想实现三个变量之间的转换还需要进行a与c,b与c的比较

3.完整代码展示与调试:

int main() {
  int a = 0;
  int b = 0;
  int c = 0;
  int t = 0;
  scanf("%d %d %d", &a, &b, &c);
  if (a < b)
  {
    t = a;
    a = b;
    b = t;
  }
  if (a < c)
  {
    t = a;
    a = c;
    c = t;
  }
  if (b < c)
  {
    t = b;
    b = c;
    c = t;
  }
  printf("%d %d %d",a,b,c );
  return 0;
}

image.gif

输入1 2 3

代码运行如下图:

image.gif


相关文章
|
2月前
|
C语言
你知道C语言中实现有序序列并序输出的2种方法吗?
你知道C语言中实现有序序列并序输出的2种方法吗?
|
6月前
|
算法 搜索推荐 程序员
C语言第十四练——请输入一个数的逆序数
C语言第十四练——请输入一个数的逆序数
76 0
|
8月前
|
传感器 算法 C语言
C语言基础算法---从数组中找最大最小值的实际应用
C语言基础算法---从数组中找最大最小值的实际应用
60 0
|
15天前
|
C语言
【C语言必刷题】1.打印1~100之间的奇数
【C语言必刷题】1.打印1~100之间的奇数
|
3月前
|
算法 搜索推荐 程序员
C语言第十七练——输出二进制中1的个数
C语言第十七练——输出二进制中1的个数
22 0
|
10月前
学C的第十三天【应用多文件的形式实现 三子棋 程序(重点);练习:1. 打印9*9乘法口诀表、2. 求10个整数中的最大值、3. 分数加减交叉计算、4. 数一下 1到 100 的整数中出现了多少个9】
9.数组的应用实例1:三子棋(综合以前学习的知识) 三子棋的实现:(重点都在注释中) 1. 游戏不退出,继续玩下一把(循环) 2. 应用多文件的形式写代码
|
10月前
|
算法 C语言
[C语言][典例详解]打印杨辉三角(找规律简单实现)
[C语言][典例详解]打印杨辉三角(找规律简单实现)
88 0