# include <stdio.h> # define MAX(x,y) (x)>(y)?(x):(y) main() { int a=5,b=2,c=3,d=3,t;

如题所述

第1个回答  2011-09-25
MAX定义有问题
应该改为:# define MAX(x,y) ((x)>(y)?(x):(y))本回答被提问者采纳
第2个回答  2011-09-25
一塌糊涂追问

# include
# define MAX(x,y) (x)>(y)?(x):(y)
main()
{
int a=5,b=2,c=3,d=3,t;
t=MAX((a+b),(c+d))*10;
printf("%d",t);
printf("\n");
}
答案为什么不是70?

...# define MAX(x,y) (x)>(y)?(x):(y) main() { int a=5,b=2,c=3...
应该改为:# define MAX(x,y) ((x)>(y)?(x):(y))

#include <stdio.h> #define MAX(x,y) (x)>(y)?(x):(y) void main...
这怎么会是70,分明是7啊!宏扩展是字符串替换而不是从左至右的计算。把具体字符串代进去就一目了然了:e=MAX(a+b,c+d)*10-->e=(a+b)>(c+d) ? (a+b) : (c+d)*10-->e=7>3 ? 7 : 3*10-->e=7。想成70或30,就得写成e=(MAX(a+b,c+d))*10;。

#define MAX(x,y) (x)>(y)?(x):(y) main(){int a=5,b=2,c=3,d=3,t...
t=(a+b)>(c+d)?(a+b):(c+d)*10,优先级高于:所以就等价于:7>6?7:60 所以结果就是7

#include<stdio.h> #define S(x) (x)*x*2 main(){int k=5,j=2;print...
正确答案是49,1(运行过)解析:S(K+J)就是将x的地方都替换为k+j,所以替换之后S(K+J)等同于(k+j)*k+j*k+j*2 = (5+2)*5+2*5+2*2=49 那么同理S(K-J)等同于(k-j)*k-j*k-j*2 = (5-2)*5-2*5-2*2=1

假设有一带参数的宏:#define MAX(x,y) x>y?x:y利用宏MAX(x,y)计算并...
参考代码如下,输入两个数字,用空格隔开;输出其中大的那个。MAX(x,y)就是调用方法。include<stdio.h> define MAX(x,y) ((x)>(y)?(x):(y))int main(void){ int x,y;scanf("%d%d",&x,&y);printf("大的数是%d\\n",MAX(x,y));return 0;} ...

c语言:输入10个数,输出最大的、最好用流程图
include <stdio.h> define N 10 define MAX(x,y) ((x)>(y)?(x):(y)) \/\/返回2个数中较大者 int main(void){ int num, i=1, max;printf("enter numbers:\\n");scanf("%d", &num); \/\/输入第一个数 max = num; \/\/把第一个数赋值给max for(i = 1; i < N; ...

#include<stdio.h> #define F(X,Y)(X)*(Y) main() { int a=3, b=4...
自加了 只不过是在你输出语句之后...请分清 a++ 和 ++a 的区别 a++ 是先做运算再++ 这里的运算也包括输出什么的 ++a 是先++再运算 同上

100分 c语言对比两个文件
最长公共子序列方法比较两个文件的相似性。输入两个文件的名字,输出一个文件,不同的地方用红色标出。include <stdio.h> include <string.h> include <stdlib.h> define max(x,y) (((x)>(y))?(x):(y))int LCS(char *str1, char *same1, int len1, char *str2, char *same2, ...

vc++ 执行错误的cl.exe 求解
include<stdio.h>#define max(x,y) (x>y?x:y)int main(){\/\/\/int max(int x,int y);\/\/这是函数声明,你没有定义max 函数,注释掉这行int a,b,c;scanf("%d,%d",&a,&b);c=max(a,b);printf("max=%d\\n",c);return 0;} ...

c语言 define 怎么用的
在宏调用时,用实参5去代替形参y,经预处理宏展开后的语句为: k=5*5+3*5 举一个具体例子:#define MAX(a,b) (a>b)?a:b#include <stdio.h>int main(){ int x,y,max; printf("input two numbers: "); scanf("%d%d",&x,&y); max = MAX(x,y); printf("max=%d\\n",max); return 0;}...

相似回答