C语言 | 您所在的位置:网站首页 › 用abc表示三个自然数如果a是b的倍数 › C语言 |
刚开始学习C语言的时候,我们可能会用 if 语句进行求解,具体如下 #include int main() { int a,b,c; //声明 int max; printf("请按顺序输入三个数:"); scanf("%d %d %d",&a,&b,&c); //输入 /* 比较a、b、c的大小*/ if(a > b) max = a; else max = b; if(max < c) max = c; printf("在%d、%d、%d三个数中,最大的数是%d\n",a,b,c,max); }但是我们可以想一想,是否可以进行优化呢? 于是,就有了下面的一段 #include int main() { int a,b,c; int max; printf("请按顺序输入三个数:"); scanf("%d %d %d",&a,&b,&c); max = a > b ? a : b; if(max < c) max = c; printf("在%d、%d、%d三个数中,最大的数是%d\n",a,b,c,max); }我们可以看到,将a、b的比较利用条件运算符的表达式进行了优化,那是否还可以进一步优化呢? 就像a、b比较大小的过程一样 这时候可以想到一个新的概念,宏定义 宏定义可以做什么呢? 它的定义是,根据一系列预定义的规则替换一定的文本模式。 也就是说,可以根据定义的规则进行完全替换 #define N 2 //将N替换为2当然啦,宏定义还可以这么用 #define fun(a,b) (a>b ? a : b)如此一来,大家都知道该怎么继续优化了吧! #include #define MAX (a > b ? a : b) int main() { int a,b,c; printf("请按顺序输入三个数:"); scanf("%d %d %d",&a,&b,&c); printf("max = %d\n",MAX > c ? MAX: c); return 0; }完成啦! |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |