作业帮 > 综合 > 作业

C程题:分别用函数和带参的宏,从三个数中找出最大的数.

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/04/28 06:06:41
C程题:分别用函数和带参的宏,从三个数中找出最大的数.
Description
分别用函数和带参的宏,从三个数中找出最大的数.
Input
3个实数
Output
最大的数,输出两遍,先用函数,再用宏.保留3位小数.
Sample Input
1 2 3
Sample Output
3.000
3.000
另:用参数求最大值的那部分这么写都哪里错了?
#include
int main()
{
int max(int a,int b,int c);
scanf("%d %d %d",&a,&b,&c);
printf("%.3f",max()};
getch();
return 0;
}
void max(int x,int y,int z)
{
int max;
max=x>(y>z?y:z)?x:(y>z?y:z);
}
C程题:分别用函数和带参的宏,从三个数中找出最大的数.
你这里面错误实在太多了,列举如下:
1.函数声明和函数定义不一致,max函数定义处为void,但声明为int
2.函数声明应该放在main函数之外对应这句,int max(int a,int b,int c),这里不用传入a、b、c
3.a,b,c没有定义 scanf("%d %d %d",&a,&b,&c);
4.函数声明的参数和返回值都是int,但要求是实数
5.求最大值时,没有传入参数,这句printf("%.3f",max()};
比较乱,下面给出正确的结果
#include
#define Max(x,y,z) (x)>(y) && (x)>(z) (x) :((y)>(z)?(y) :(z))
float my_max(float,float,float);
int main()
{
float a,b,c;
scanf("%f %f %f",&a,&b,&c);
printf("%.3f\n",my_max(a,b,c));
printf("%.3f",Max(a,b,c));
getch();
return 0;
}
float my_max(float x,float y,float z)
{
float max_num;
max_num = x>y && x>z x :(y>z y :z);
return max_num;
}