数字游戏C ++

时间:2013-12-14 22:49:23

标签: c++ numbers

我有一个程序存储当前的低数字。对象是每次出现新数字时存储低位数。所以说我启动功能,第一个数字将等于低数字。但是,一旦再次调用该函数,它就会出现问题,它会重新开始,并且会被删除。有一种方法可以在再次调用函数后保留函数值吗?还是有人知道更好的方法,同时保持一个班级的功能吗?

由于

double a;

class rff{ 

public:
    void FGH()
    {
        double  b=0;

        cout<< "pick a number"<<endl;
        cin>>a;
        b=a;
        cout << "yournum";
        cout << "LAST num:" << a<< endl;
        cout << "Low num:" << b << endl;

        cout <<"'pick another number"<<endl;
        cin>>a;
        if (a < b)
        {
            b = a;
        }
        cout << "yournum";
        cout << "LAST num:" <<a<< endl;
        cout << "Low num:" << b<< endl;
        cin.get();
    }

};

和来源CPP

int main(){
    rff ws;
    ws.FGH();
    ws.FGH();
    ws.FGH();

    cin.get();
    cin.get();
    return 0;
}

1 个答案:

答案 0 :(得分:0)

您的代码中存在许多错误。在这里,我建议一些可能更好的东西(未经测试,因此您可能需要对其进行调整)。

class MinimalChecker {

private:
    double minValue;

public:
    void MinimalChecker() {
        minValue = std::numeric_limits<double>::max();
    }

    void check()
    {
        double userInput = 0;

        cout << "Pick a number" << endl;
        cin  >> userInput;
        if (userInput < minValue)
        {
            minValue = userInput;
        }
        cout << "Number typed:" << userInput << endl;
        cout << "Lower number:" << minValue << endl;
        cin.get();
    }
};

的变化:

  1. 更好的类/方法名称,更易于理解
  2. 没有更多全局变量。只有一个类成员存储从用户第一次输入数字时开始的最小值。它在构造函数中初始化,在c ++中允许使用double类型的最大值。
  3. 仅向用户询问一次号码。如果你不这样做,每次运行旧的FGH()函数时,较低的数字都会被覆盖而没有条件。