
没啥难点,主要知识点在于保留小数点后两位,需要:
# include <iomanip>
cout << fixed << setprecision(2) << output << endl;
如果要求是保留两位有效数字则改为
# include <iomanip>
cout << setprecision(2) << output << endl;
直接求和即可AC,代码如下:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double input[12] = { 0 };
double sum = 0.0;
for (int i = 0; i < 12; i++)
{
cin >> input[i];
sum += input[i];
}
cout << "$" << fixed << setprecision(2) << sum / 12 << endl;
return 0;
}
一开始的时候没看到数据大小限制,怕sum的值超过最大浮点数,于是写了一个平均数的版本同样可以AC,代码如下:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double input[12] = { 0 };
double ave = 0.0;
for (int i = 0; i < 12; i++)
{
cin >> input[i];
if (ave > input[i])
{
double error = ave - input[i];
ave -= error;
error = error * i / (i + 1);
ave += error;
}
else if (ave < input[i])
{
double error = input[i] - ave;
ave += error / (i + 1);
}
}
cout << "$" << fixed << setprecision(2) << ave << endl;
return 0;
}