【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


相关文章
|
10月前
|
算法 搜索推荐 程序员
C语言第十四练——请输入一个数的逆序数
C语言第十四练——请输入一个数的逆序数
97 0
|
4月前
|
C语言
C语言期末习题之数组逆序存放
C语言期末习题之数组逆序存放
55 0
|
3月前
|
存储 C语言
【C语言刷题系列】求一个数组中两个元素a和b的和最接近整数m
【C语言刷题系列】求一个数组中两个元素a和b的和最接近整数m
|
3月前
|
C语言
C语言学习记录——将三位数的个十百位单独打印,并求其和。
C语言学习记录——将三位数的个十百位单独打印,并求其和。
28 4
|
3月前
|
C语言
C语言-----输入10个数,对其从大到小进行排列
C语言-----输入10个数,对其从大到小进行排列
|
3月前
|
C语言
C语言学习记录——计算一个数的每位之和(递归实现)
C语言学习记录——计算一个数的每位之和(递归实现)
18 0
|
4月前
|
C语言
每天一道C语言编程(3):有规律的数列输出
每天一道C语言编程(3):有规律的数列输出
40 0
|
C语言
C语言刷题系列——1.将三个整数按从大到小输出
C语言刷题系列——1.将三个整数按从大到小输出
139 0
|
C语言
C语言典型例题三——冒泡排序法
冒泡排序法 冒泡排序的原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。
155 0