写在前面:这里是小王成长日志,一名在校大学生,想在学习之余将自己的学习笔记分享出来,记录自己的成长轨迹,帮助可能需要的人。欢迎关注与留言。
某年某月某日,老师给我们布置了一个极其笨拙的方法用来求三个数中的最大值,还在最后让我们找其他方法,这就让我瞬间上了头!
第一种-使用三元运算符
如名字表示的三元运算符需要三个操作数。
语法为:条件表达式?表达式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
max = b;
else
max = c;
printf("%d",max);
}
都看到这里了,各位哥哥姐姐叔叔阿姨给小王点个赞 关个注 留个言吧,和小王一起成长吧,你们的关注是对我最大的支持。
有事没事进来看看吧 : 小王的博客目录索引
更多计算机网络优质博客看这 : 计算机网络专栏博客索引
如果以上内容有任何不准确或遗漏之处,或者你有更好的意见,就在下面留个言让我知道吧-我会尽我所能来回答。