问题概述:

用C语言求三个数中的最大数这一问题是C语言的基础性问题,有多种可实施办法下面介绍两种办法一种用问号表达式(正则表达式),另一种用函数法。


代码实现:问号表达式

#include<stdio.h>
int main(){int a,b,c,t,max;printf("请输入三个整数:\n");scanf("%d%d%d",&a,&b,&c);max=((t=(a>b?a:b))>c?t:c);    /*整个代码段中最灵性的一段,本来我们的问号表达式是从右往左运 算的但在这里运用()来提振优先级,使之先运算()内的问号表     达式问号表达式的意义是如果a>b那么t=a,否则t=b,后面的读者 可以自行解释*/printf("这三个数中最大的是%d",max);return 0;
}

代码分析:

有时大家在运行问号表达式或称正则表达式时遇到多重问号表达式的嵌套容易误认为从左往右运行,实际上C语言在处理问号表达式时是按照从右往左运行的方式例如:

该代码运行结果为1,即先运行c<d?c:d结果是返回c的值3后在运行后面的a<b?a:c结果是a确实小于b因此返回a的值1,由此我们便可以看出问号表达式的运算方法是自右往左。


替补方案:函数法

除了问号表达式这样一个十分简洁有效的方式以外我们还有许多方法可以用来解决该问题,这里作者列出的是清晰易懂的函数法

#include<stdio.h>
int max(int x,int y){    //函数的类型决定了最终返回值的类型,形参x,y要定义成和实参类型相同的类    //型int n;if(x>y)    //形参x得到a或b的值,此时判断a或b与c的大小若c小便令n等于a或b的值,否则n等于c的值n=x;elsen=y;return n;    //返回值n的类型为函数的类型这一点可以在主函数输出语句中的输出类型中验证
}
int main(){int a,b,c;printf("请输入三个整数:\n");scanf("%d%d%d",&a,&b,&c);if(a>b)    //如果a>b那么向max函数传递a和c的值,否则传递b和c的值printf("最大值为%d",max(a,c));    //向max函数传递实参a,celseprintf("最大值为%d",max(b,c));    //向max函数传递实参b,creturn 0;
}

由于函数法过于简单易懂,作者在这里不在赘述,读者自行看代码和注释理解

关于C语言用问号表达式(正则表达式)输入三个数求最大数的问题相关推荐

  1. java比较三个数的编程_Java小程序输入三个数求最大数

    Java小程序输入三个数求最大数代码: import java.io.*; public class Help { // 比较两个数字 public static void main(String[] ...

  2. c语言中从键盘上输入三个数,将之排序后按由大到小的顺序输出,从键盘上输入3个数,将它们按由大到小的顺序排列好输出...

    vb中从键盘上输入10个数,判断有几个偶数,有几个奇数? 我给你写了,挺简单的.窗体上添加两个label控件一个command控件Dima(1To10)DimbDimcAsIntegerDimdAsI ...

  3. c语言学习-输入三个数求三个数中的最大数

    自定义函数,通过函数调用直接找最大数,输入三个数求三个数中的最大数 程序流程图: 代码: #include<stdio.h> double ma(double l,double m,dou ...

  4. c#输入三个数选出最大的_C#:从键盘任意输入三个数,求其中最大的数

    C#:从键盘任意输入三个数,求其中最大的数 关注:114  答案:5  mip版 解决时间 2021-01-31 10:01 提问者你若离去丶巴掌扇去 2021-01-30 22:17 郁闷啊...谁 ...

  5. c语言输入三个数求平均值和乘积,C语言输入三个实数型,计算它们的和并输出(要求保留两位小数...

    C语言输入三个实数型,计算它们的和并输出(要求保留两位小数以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C语言输入三个 ...

  6. C语言 数组索引负值的情况,以及C语言的问号表达式

    实际上C语言的数值索引可以是负值,只不过并不是像python一样指向的是从最后数的第几个元素,这里C语言中的数组的元素有一个恒等的关系: *a[i] = (a+i) 只要指向的这个地址里面有内容就可以 ...

  7. c语言求三个数最值非函数,C语言编程:从键盘任意输入三个数,编写求其最大值、最小值的函数,用指针作函数参数实现。...

    www.shufadashi.com防采集. C语言编程:从键盘任意输入三个数,编写求其最大值.最小值的函数,用指针作函数参数实现.. #includevoid maxfunction(int*);v ...

  8. c语言学习-从键盘输入三个数,按照从小到大(或从大到小)的顺序输出

    从键盘输入三个数,按照从小到大(或从大到小)的顺序输出 程序流程图: 代码: #include<stdio.h> void main() {float a,b,c,d; printf(&q ...

  9. python表示三个数升序_编写程序,输入三个数,然后以升序显示_学小易找答案

    [简答题]按照软件开发的顺序,实现下列程序: 计算三角形面积的公式为:s = (side1 + side2 + side3) / 2,area = (s - side1)(s - side2)(s - ...

最新文章

  1. 1105 Spiral Matrix 给定数组向螺旋矩阵中填入数据
  2. 数据挖掘基础知识-矩阵(分解)
  3. 【Socket网络编程】11.网络编程中的 数据封装 和 数据拆封
  4. 考察大新和南宁农业产业园 农业大健康·李喜贵:赋能乡村振兴
  5. 信息学奥赛一本通(1037:计算2的幂)
  6. 编译安装LNMP全程实录
  7. HTML 5参考手册
  8. 多布局怎么搭建_展会搭建如何吸引人的注意力?
  9. 未解决:fatal error: wasm.h: 没有那个文件或目录 #include <wasm.h>
  10. WINDOWS10更改主题
  11. 包括8个html的网页设计作品,8个超棒的HTML5网站设计欣赏
  12. 计算机组成原理试题 一,计算机组成原理试题库(含答案)
  13. 使用 Android 开发 MQTT 客户端
  14. 每日一案:“实质性相似加接触”是判定作品侵权的核心标准---摘自“成都法院网”
  15. jmeter结果树为空_Jmeter查看结果树之查看响应的13种方法[详解]
  16. mysql插入特殊汉字、字符报错
  17. 微信开发平台第三方平台86004无效微信号
  18. pageContext
  19. Windows与网络基础
  20. GitWeb服务器搭建

热门文章

  1. 通用寄存器各自的作用
  2. ctfshow---sql注入(214-253)
  3. 一起学 mybatis 基础教程
  4. el-table后端返回日期2023-04-07T09:10:47.000+00:00格式转换
  5. Atlassian Clover宣布开源 !
  6. 使用内存超过16G的电脑是种怎样的体验?
  7. 谁在帮恶商欺侮中国消费者? 评杭州工商局称康师傅选取自来水是优质水源
  8. 06_css3中的Animation(动画)
  9. sharepoint 2010部署
  10. 「 运动控制 」“PID控制原理及参数调整”经验