#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));
}
 
       
      
			         
           
           
                    
 
           
           
           
           
           
           
          
