大家帮我看一道题目好吗?

来源:百度知道 编辑:UC知道 时间:2024/09/21 01:46:06
试设计一个程序,定义带参数的宏MAX(A,B)和MIN(A,B),分别求两数中的大数和小数。在主函数中输入3个数,并求出3个数中的最大数和最小数。
下面是我编的,能帮我看看吗?好像很错哦!
#include <iostream>
#include <cmath>
using namespace std;
#define MAX(A,B) return A>B?A:B
#define MIN(A,B) return A<B?A:B

int main(double A,double B,double C)
{double E,F,G,H;
cout<<"请输入3个数:";
cin>>A>>B>>C;
E=MAX(A,B);
F=MAX(C,E);
cout<<"三个数的最大值:"<<F<<endl;
G=MIN(A,B);
H=MIN(C,G);
cout<<"三个数的最小值:"<<H<<endl;
return 0;
}
我修改了一下,帮我看看啊
#include <iostream>
#include <cmath>
using namespace std;
#define MAX(A,B) if(A>B) A=A;
else A=B;

double main(int A,int B,int C)
{cout<<"请输入3个数:";
cin>>A>>B>>C;
MAX(A,B)
MAX(A,C)
cout<<"三个数的最大数为:"

好好看看语法书吧, 对 #define是怎么说的

#define就是替换, 你把你用 MAX宏的地方替换成 return ....试试看?

#include <iostream>
#include <cmath>
using namespace std;
#define MAX(A,B) A>B?A:B
#define MIN(A,B) A<B?A:B

int main(double A,double B,double C)
{double E,F,G,H;
cout<<"请输入3个数:";
cin>>A>>B>>C;
E=MAX(A,B);
F=MAX(C,E);
cout<<"三个数的最大值:"<<F<<endl;
G=MIN(A,B);
H=MIN(C,G);
cout<<"三个数的最小值:"<<H<<endl;
return 0;
}
补充:
首先你对define这个指令真的不是很了解,#define指令定义一个
宏的时候是以行为结束标记,你把一个命令写在两个行中。这条
语句在语法就通不过。看一下这里有关#define的解释:
http://zhidao.baidu.com/question/63349669.html

另外不管是A>B还是B>A都与前的E,F,G,H没有任何关系,你想
E=if(A>B) A=A;else A=B;这样的语句在语法上能通过吗?
就像上面说的那样E=A>B?