求助
#include <stdio.h>#define MAX(a,b) (a > b ) ? (a) : (b)
int main ( void )
{
int a,b,c,d;
printf("输入4个数:\n");
scanf("%d%d%d%d",&a,&b,&c,&d);
printf("最大数是:%d\n",MAX( MAX(a,b),MAX(c,d)));
return 0 ;
}
scarecrow@scarecrow-desktop:~/myc$ gcc -Wall maxOf4.c -o maxOf4
scarecrow@scarecrow-desktop:~/myc$ ./maxOf4
输入4个数:
1
2
3
4
最大数是:2
scarecrow@scarecrow-desktop:~/myc$
小弟哪里出问题了???
----------------解决方案--------------------------------------------------------
#define 好像不能嵌套使用的,电脑只能识别最外层.用函数吧,函数保险!
----------------解决方案--------------------------------------------------------
回复 2# 的帖子
#define 是可以嵌套使用的lz的程序在vc运行正常
如果嵌套失败,使用2层定义
#define MAX(a,b) (a > b ) ? (a) : (b)
#define XMAX(a,b) MAX(a,b)
XMAX( XMAX(a,b),XMAX(c,d))
----------------解决方案--------------------------------------------------------
宏命令只是简单地对字符窜进行复制,在进行链接他只是进行简单的字符窜的替换,将题目中#define MAX(a,b) (a > b ) ? (a) : (b)改成#define MAX(a,b) ((a > b ) ? (a) : (b))就行了
----------------解决方案--------------------------------------------------------
谢谢大家了,是#define MAX(a,b) (a > b ) ? (a) : (b)的问题,少个括号.粗心了.
----------------解决方案--------------------------------------------------------