C语言中三个数比较大小详解——三种方法

    • 方法一:if-else法
    • 方法二:函数法
    • 方法三:三目运算符法

C语言中比较三个数的大小有很多方法,以下是我总结的三种方法:

首先我定义 int a = 10; int b = 20; int c = 30;来比较三个数的大小。(如要输入三个数的大小,调用scanf函数即可实现)

以下为比较大小的不同方法附带源码。

方法一:if-else法

if-else是最简单组常见的比较方法,通过if-else的嵌套使用求出三个数中的最大值,注意的是 if 后面如需要多条语句支持时,需要加“{}”。

源代码如下:

#includeint main(){int a = 10;int b = 20;int c = 30;int max = 0;if (a > b&&a > c)max = a;else if (b > c&&b > a)max = b;else if(c > a&&c > b)max = c;printf("max = %d\n",max);return 0;}

方法二:函数法

通过调用MAX函数实现功能

源码如下:

#includeint MAX(int a, int b, int c){if (a>b && a>c)return a;else if (c>a && c>b)return c;else if (b>a && b>c)return b;elsereturn a;}int main(){int a = 10;int b = 20;int c = 30;int ret = MAX(a, b, c);printf("max = %d\n", ret);return 0;}

方法三:三目运算符法

其实叠加的三目运算符它的一般形式如下:

表达式1? 表达式2:表达式3;

通过三目运算符其实是可以比较n个数的大小的,以下我以比较三个数的大小为例:

注:读代码方法,找出相离最近的 “ ?:”,然后从里往外读。

源码如下:

#includeint main(){int a = 10; int b = 20;int c = 30;int ret = a>b?a>c?a:c:b>c?b:c;//通过三目运算符的叠加比较出大的数printf("max = %d\n",ret);return 0;}

三种方法运算结果都如下:

我的分享就到这里,欢迎交流。

END:努力追寻自己想要的,何必在乎他人的眼光。