-1 c
#include <stdio.h>
#include <stdlib.h>
#define MAXIMUM(a,b) (a>b ? a:b)
#define MAX(a,b,c) (MAXIMUM(MAXIMUM(a,b),c))
#define MINIMUM(a,b) (a<b ? a:b)
#define MIN (a,b,c) (MINIMUM(MINIMUM(a,b),c))
#define MID(a,b,c) (MAX(a,b,c)+ MIN(a,b,c))/2
int main()
{
int a=0; int b=0; int c=0;
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
float t = MID(a,b,c);
printf("%f\n",t);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是
left operand of comma has no operator in #define MID(a,b,c)
The expression cannot be used as a function in #define MIN
Run Code Online (Sandbox Code Playgroud)
哦! 我知道你的问题是什么:
#define MIN (a,b,c) (MINIMUM(MINIMUM(a,b),c))
Run Code Online (Sandbox Code Playgroud)
应该
#define MIN(a,b,c) (MINIMUM(MINIMUM(a,b),c))
Run Code Online (Sandbox Code Playgroud)
预处理器是空白敏感的; MIN令牌及其参数列表之间不能有任何空格(a,b,c)