宏的简单应用(得出数组中的最大值)
2013-03-15 21:04
288 查看
#include <stdio.h> #define MAX(x, y) (x > y ? x : y) int a[] = {5, 3, 54, 565, 24, 75}; int max(int n) { //用递归的方式从前面开始比较a[]中数值 return n == 0 ? a[0] : MAX(a , max(n - 1));
}int main(void){int n = 5;int m = max(n);printf("the max number of the array is %d\n", m);return 0;}
比较a[]中的数值,并输出最大值。
ps:
不好意思,上面代码中注释写错了,上面注释是当MAX(x, y)为普通函数时的注释
上式中运用宏函数,所以情况不同。
return n == 0 ? a[0] : MAX(a , max(n - 1));
相当于
return 9 == 0 ? a[0] : MAX(a[9], (9 == 0 ? a[0] : MAX(a[8], 7 == 0 ? a[0] : MAX(a[7], ......)));
因为宏只是将实参替代形参,并不会有相应的计算,如 n - 1.
相关文章推荐
- 用数组实现一个简单的heap(最大堆)结构
- 数组的简单应用 一
- JAVA得到数组中最大值和最小值的简单实例
- Day7-指针的基础详解、二维数组、数组的几种应用、字符串的简单应用.pages
- 树状数组的简单应用(求逆序对个数)
- 大数据下-巧用位数组排序和判重及布隆过滤器的简单应用
- 字典树(Trie、prefix tree)及其应用(求一个数组中的最大异或值)
- JS中数组的应用与简单算法(冒泡排序)
- 基本语法题,公倍数的计算,最大最小平均值,数组的应用,闰年的判断,完数的计算,水仙花数,随机数练习
- 数组简单应用
- 输出两个数的最大值和最小值——(程序的多文件组织简单应用)
- Java数组的应用2:数组的最大,最小,求和,平均值,倒置
- 递归在数组中的简单应用
- poj2752—kmp的next数组的简单应用
- go语言函数参数与返回值示例,数组的简单应用
- 数组的简单的应用
- C语言的简单应用-数组实现多项式
- hdu——1166(数据结构之树状数组的简单应用)
- 结构体数组的超简单应用
- JSP简单练习-数组应用实例