当前位置: 代码迷 >> C语言 >> 求助
  详细解决方案

求助

热度:74   发布时间:2008-03-21 10:34:54.0
求助
#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$



小弟哪里出问题了???
搜索更多相关的解决方案: include  return  

----------------解决方案--------------------------------------------------------
#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)的问题,少个括号.粗心了.
----------------解决方案--------------------------------------------------------
  相关解决方案