#include <iostream>
#include <string>
using namespace std;
// 求两个数的调和平均数
// sca = (2*a1*a2) / (a1+a2);
// 1
enum Etimate {
zero = 0,
nonzero
};
void ScanfFunc(int&, int&);
Etimate EtimateFunc(int&, int&);
// 2,3
double HarmonicAverage(int&, int&);
int main()
{
int num1 = 0;
int num2 = 0;
double harAve = 0;
bool numBool = false;
Etimate numEtimate = {nonzero};
while (1)
{
ScanfFunc(num1, num2);
numEtimate = EtimateFunc(num1, num2);
if (zero == numEtimate)
{
return 0;
}
else if (nonzero == numEtimate)
{
harAve = HarmonicAverage(num1, num2);
cout << "输入的数字是:" << num1 << " or " << num2 << ", 它们的调和平均数是: " << harAve << endl;
}
}
}
// 1、不断要求用户输入2个数,直到其中一个值为0;
void ScanfFunc(int& num1, int& num2)
{
cout << "请输入两个数." << endl;
cout << "第1个数:";
cin >> num1;
cout << "第2个数";
cin >> num2;
}
Etimate EtimateFunc(int& num1, int& num2)
{
if (0 == num1 || 0 == num2)
{
return zero;
}
else
{
return nonzero;
}
}
// 2、对于每2个数,程序将使用一个函数来计算它们的调和平均数
// 3、函数将计算结果返回给主函数, 在主函数中输出输入的数字和它们的调和平均数
double HarmonicAverage(int& num1, int& num2)
{
return (double)((2 * num1 * num2) / (num1 + num2));
}