三个数中寻找最大值的5种方法-C语言实现

写在前面:这里是小王成长日志,一名在校大学生,想在学习之余将自己的学习笔记分享出来,记录自己的成长轨迹,帮助可能需要的人。欢迎关注与留言。

某年某月某日,老师给我们布置了一个极其笨拙的方法用来求三个数中的最大值,还在最后让我们找其他方法,这就让我瞬间上了头!
在这里插入图片描述

第一种-使用三元运算符
如名字表示的三元运算符需要三个操作数。
语法为:条件表达式?表达式1:表达式2。
说明:问号前面的位置是判断的条件,判断结果为bool型,为true时调用表达式1,为false时调用表达式2。
其逻辑为:“如果条件表达式成立或者满足则执行表达式1,否则执行第二个。”常用在设置默认值,例如某个值不一定存在,则判断这个值是否存在,不存在给默认值(表达式2)。
这题我们的思路也是一样,在这里我们先用三元运算符求出两个数的最大值,然后用这个最大值与第三个数比较得出真正的最大值。

#include <stdio.h>
int main()
{
    int a, b, c;
    printf("请输入a,b,c");
    scanf("%d %d %d", &a, &b, &c);
    
    // 1.三元运算符
    int n = (((a > b) ? a : b) > c) ? ((a > b) ? a : b) : c;
    printf("%d", n);
    
    return 0;
}



第二种-调用函数
其实调用的函数实际上又可以有多种写法,但是这里就不展开了,基本就是这里的方法变成两个数求最大值套进去,相信各位聪明的看官一定能轻松理解的。

#include <stdio.h>
int main()
{
	int a, b, c;
    printf("请输入a,b,c");
    scanf("%d %d %d", &a, &b, &c);

    // 2.调用函数
    int m=judge(judge(a,b),c);
    printf("%d", m);
} 
   
int judge(int a, int b)
{
    return (a > b) ? a : b;
}

第三种-使用中间变量储存最大值

// 3.使用中间变量储存最大值
#include <stdio.h>
int main()
{
    int a, b, c;
    printf("请输入a,b,c");
    scanf("%d %d %d", &a, &b, &c);
	
	int t = 0;
    if (a > b)
        t = a;
    else
        t = b;
    if (c > t)
        t = c; //t为最大值
    printf("%d", c);
} 
  

第四种-方法3的改进版-使用a储存最大值

// 4.方法3的改进版-使用a储存最大值
#include <stdio.h>
int main()
{
	int a, b, c;
    printf("请输入a,b,c");
    scanf("%d %d %d", &a, &b, &c);
	
    if (a<b)
    	a=b;
    if (a<c)
    	a=c;//a值为最大值
    printf("%d",a);
} 
  

第五种-使用&&防止if嵌套

 // 5.使用&&防止if嵌套
#include <stdio.h>
int main()
{
    int a, b, c;
    printf("请输入a,b,c");
    scanf("%d %d %d", &a, &b, &c);

    int max;
    if (a > b && a > c)
        max = a;
    else if(b > a && b > c)
        max = b;
    else
        max = c;

    printf("%d",max);
} 
  

都看到这里了,各位哥哥姐姐叔叔阿姨给小王点个赞 关个注 留个言吧,和小王一起成长吧,你们的关注是对我最大的支持。
有事没事进来看看吧 : 小王的博客目录索引
更多计算机网络优质博客看这 : 计算机网络专栏博客索引


如果以上内容有任何不准确或遗漏之处,或者你有更好的意见,就在下面留个言让我知道吧-我会尽我所能来回答。

相关推荐
©️2020 CSDN 皮肤主题: 黑客帝国 设计师:白松林 返回首页