【题目描述】
已知某班有男同学x位,女同学y位,x位男生平均分是87分,y位女生的平均分是85,问全体同学平均分是多少分?
【输入】
男女同学人数x,y。
【输出】
平均分(保留4位小数)。
【输入样例】
2 3
【输出样例】
85.8000
【源代码】
方法一:强制数据类型转换
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x, y;
cin >> x >> y;
double s = (double)(x * 87 + y * 85) / ( x + y);//强制数据类型转换
cout << fixed << setprecision(4) << s;
return 0;
}
方法二:乘以1.0整数变实数
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x, y;
cin >> x >> y;
double s = 1.0 * (x * 87 + y * 85) / ( x + y);//可以乘1.0整数变实数
printf("%.4lf",s);
return 0;
}
【知识点小结】
知识点一:“
/ ”
功能与c++中的 “
/ ”,两个整数之间进行“/”的时候是取整运算,与数学中的除法存在差异,当两个数为实数的时候进行“
/ ”运算时就与数学中的除法相同了。
知识点二:强制类型转换
在C++语言中,还允许强制类型转换。强制类型转换就是将某一数据的数据类型转换为指定的另一种数据类型。注意强制类型转换只是临时转换,强制类型转换运算符组成的运算表达式的一般形式为:
(类型名)(表达式);
例如(int)(3.5)输出的值为3。