题目链接:BC129-小乐乐计算函数
问题重述:小乐乐学会了自定义函数,BoBo老师给他出了个问题,根据以下公式计算m的值。
其中 max3函数为计算三个数的最大值,如: max3(1, 2, 3) 返回结果为3。
输入描述:
一行,输入三个整数,用空格隔开,分别表示a, b, c。
输出描述:
一行,一个浮点数,小数点保留2位,为计算后m的值。
思路:我们根据题目要求,构造新函数max3.采用d储存a,b,c的最大值。之后引用函数max3即可。
我的代码:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int max3(a,b,c) //构建新函数max3,判断a,b,c中那个数最大并把它赋值给d
{
int d = 0;
if(a >= b && a >= c)
d = a;
else if(b >= c && b >= a)
d = b;
else
d = c;
return d;
}
int main()
{
float m = 0;
int a = 0;
int b = 0;
int c = 0;
scanf("%d %d %d",&a,&b,&c); //输入
m = (float)max3(a+b,b,c)/(max3(a,b+c,c)+max3(a,b,b+c));
printf("%.2f\n",m);
return 0;
}
注意点:
注意max3函数返回的是d不是0。
最后浮点型计算( m = (float)max3(a+b,b,c)/(max3(a,b+c,c)+max3(a,b,b+c));)需要在前加入(float),否则会造成精度缺失,影响输出结果。分母计算时加入括号保证运算顺序正确性。
输出结果是两位小数,printf函数内使用"%.2f"即可。