首页 > 解决方案 > 尝试在 C++ 中创建随机数生成器并出现错误

问题描述

我对 c++ 很陌生,目前正在尝试从头开始编写随机数生成器。但是,我在 while 语句下遇到错误,我不知道我做错了什么。我在 python 方面有一些经验,所以也许我想我可能会创建类似 python 的语法而不是 c++ 之一?谢谢你。

#include <iostream>
using namespace std;


class Random {
public:
    double oldRoot;
    double newRoot;
    int iteNum;

    Random(double aOldRoot, double aNewRoot, int aIteNum) {
        oldRoot = aOldRoot;
        newRoot = aNewRoot;
        iteNum = aIteNum;
    }

    int count = 0;

    while (count <= iteNum) {
        double totalRoot;
        totalRoot = oldRoot + newRoot;
        if totalRoot > 1.0{
            oldRoot = newRoot;
            newRoot = totalRoot - 1.0;
        }
        else {
            oldRoot = newRoot;
            newRoot = totalRoot;
        }
        cout << oldRoot << endl;
        cout << newRoot << endl;

        count += 1
    }

};

int main() {

    Random random10(0.1412, 0.2343, 10);

    return 0;

}

标签: c++

解决方案


问题是您的生成器代码不在类的方法中,而是在类声明本身中,这是语法错误。尝试更多类似的东西:

#include <iostream>
using namespace std;


class Random {
public:
    double oldRoot;
    double newRoot;
    int iteNum;

    Random(double aOldRoot, double aNewRoot, int aIteNum) {
        oldRoot = aOldRoot;
        newRoot = aNewRoot;
        iteNum = aIteNum;
    }

    void generate() {
        int count = 0;

        while (count <= iteNum) {
            double totalRoot = oldRoot + newRoot;
            if (totalRoot > 1.0) {
                oldRoot = newRoot;
                newRoot = totalRoot - 1.0;
            }
            else {
                oldRoot = newRoot;
                newRoot = totalRoot;
            }
            cout << oldRoot << endl;
            cout << newRoot << endl;

            count += 1;
        }
    }
};

int main() {

    Random random10(0.1412, 0.2343, 10);
    random10.generate();

    return 0;

}

推荐阅读