在c语言中如何用标准宏定义实现计算两个参数中的最小值

2024-05-18 07:54:59
最佳回答
可以通目运算符(? :)实现,这样定义,#define min(x,y)((x)<(y)?(x):(y)),测试代码如下,//程序功能实现,计算两个数的最小值#include <stdio.h>#define min(x,y)((x)<(y)?(x):(y))int main(int argc, char *argv[]){int x=10,y=15;printf("min(%d,%d)=%d\n",x,y,min(x,y));return 0;}需要注意的是,宏定义是原样替换,需要保证替换后的准确性,例如,#define min(x,y)(x<y?x:y),这样定义后,宏表达式则可能出现问题,不是想要的结果,比如下面的例子,可以看出区别,编译器不同结果可能不同。#include <stdio.h>#define min1(x,y)(x<y?x:y)#define min2(x,y)((x)<(y)?(x):(y))int main(int argc, char *argv[]){int x=10,y=15;printf("min1(%d,%d)=%d\n",x,y,min1(x+=2,y));//输出min1(24,15)=24x=10;printf("min2(%d,%d)=%d\n",x,y,min2(x+=2,y));//输出min2(14,15)=14return 0;} 20210311
汇率兑换计算器

类似问答
  • 中小企业的定义和标准
    • 2024-05-18 09:36:59
    • 提问者: 未知
    所谓中小企业,是指在中华人民共和国境内依法设立的有利于满足社会需要,增加就业,符合**产业政策,生产经营规模属于中小型的各种所有制和各种形式的企业。它的划分标准由**负责企业工作的部门根据企业职工人数、销售额、资产总额等指标。00:00 00:00 100%用户鉴权失败,请先注册成为...
  • excel中如何利用abs函数计算绝对值
    • 2024-05-18 07:45:49
    • 提问者: 未知
    1如下图,我们要计算a1:a7单元格中数据的绝对值,我们只需要在b1中输入公式=abs(a1)2回车得到结果,再用自动填充功能完成其余单元格的数据; 3除了计算单个单元格数据我绝对值,我们还可以计算多个单元格数据之差的绝对值。例如我们要计算下图中两列数据之差的绝对值;4如果利用前面的方法,我们可以先计算两列数之差,再来求绝对值,这里我们只要在c1中输入 =abs(b1-a1)或=abs(a1-b1...
  • c语言中怎么定义常变量
    • 2024-05-18 23:26:58
    • 提问者: 未知
    定义常变量键字为const,格式如下const type var_name=init_value;1、 var_name为变量名;2、type为变量类型;3、inti_value始化值,非,但由于常变量值不可修改,所以一般都有初始化值,否则没意义;4、const实际修饰为var_name,所以也可以写作:type const var_name=init_value;
  • 从文本文件里读取数字,c语言如何实现
    • 2024-05-18 14:04:02
    • 提问者: 未知
    voidmain() { file*fin;inta,b,c,d;chars[20];floatf1,f2,f3,f4;fin=fopen("abc.txt","r");打开 fscanf(fin,"%1d%1d%1d%1d",&a,&b,&c,&d);按1位整型读前4个数 printf("a=db=dc=dd=d\n",a,b,c,d);rewind(fin);文件回绕到62616964757a...
  • c语言中两个*是什么意思?比如int**p
    • 2024-05-18 10:58:20
    • 提问者: 未知
    2 个2113*号,声明指向指针的指针。它的意思5261是“它是一个整数,这个整数指向某个内4102存地址,一次访1653问sizeof(int)长度,其值是一个整数,那个整数值指向某个内存地址,一次访问sizeof(btree)长度。指针可以指向一份普通类型的数据,例如 int、double、char 等,也可以指向一份指针...
  • c#如何将float类型数值保留两位小数?
    • 2024-05-18 12:35:43
    • 提问者: 未知
    程序例程如下: double x = 6.50000000000;float y = float.parse(x.tostring());console.writeline(y.tostring("f2"));以上程序将x值赋给y,y保留两位小数。
  • (5)c语言中字符间的距离如何计算?由一字符能分别得到ascii比它小5、大10的两个字符吗?若能,如何得到?
    • 2024-05-18 22:21:23
    • 提问者: 未知
    由一字符能分别得到ascii比它小5、大10的两个字符吗?若能,如何得到?答:每通道的记录长度逻辑分析仪的...自交养老保险是满二十五年可停交,但医保不可以继续交至退休年龄。...
  • c语言算法
    • 2024-05-18 02:07:51
    • 提问者: 未知
    include int main() { int none,ntwo,nfive;int count=0;for(nfive=0;nfive;nfive){ for(ntwo=0;ntwo;ntwo){ none=60-ntwo-nfive;if(100=(nfive*5+ntwo*2+none)){ count;printf("第%d种:%d个五分,%d个两分,%d个1分\n",count,nf...
  • c语言数组能分配的最大值,例如a[m][n],其中m,n的最大值是多少?
    • 2024-05-18 03:45:06
    • 提问者: 未知
    局部非静态的数组,空间在程序的栈上分配,不同**的栈大小不同:sunos/solar**是8m,linux是10m,windows是1m,aix是64m,都是可以调整的。所谓的动态数组,其实分配在栈上,对那些windows之外的**,栈尺寸都比较大,所以不觉得有什麽,一般足够,但微软并不认为这是好主意,与其调整栈尺寸,不如在堆上分配更彻底(想象一下运行时接收了不合理的数组尺寸将有什麽结果就知道了,...
  • 用c语言编写的银行家算法实验报告
    • 2024-05-18 09:26:06
    • 提问者: 未知
    银行家算法 银行家算法是一种最有代表性的避免死锁的算法。要解释银行家算法,必须先解释操作系统安全状态和不安全状态。安全状态:如果存在一个由系统中所有进程构成的...
汇率兑换计算器

热门推荐
热门问答
最新问答
推荐问答
新手帮助
常见问题
房贷计算器-九子财经 | 备案号: 桂ICP备19010581号-1 商务联系 企鹅:2790-680461

特别声明:本网为公益网站,人人都可发布,所有内容为会员自行上传发布",本站不承担任何法律责任,如内容有该作者著作权或违规内容,请联系我们清空删除。