30/09/2018, 16:51

[Hỏi] Code tạo một string 0 và 1 ngẫu nhiên

Em đang vướng chỗ tạo một string gồm các phần tử 0 và 1 ngẫu nhiên. Nhưng do tập tành class nên có sai sót (Thích thể hiện :’( ), mọi người giúp em với ạ. Ban đầu chạy vẫn tốt, mà thêm cái SetName vô thì chạy được 2 cái cout (bên hàm PrintSample) rồi nó stopped working luôn

class Game
{
public:
    void GetName(string start)
    {
        Sample = start;
    }

    string SetName(string Random, int length)
    {
        for(int i = 0; i < length; i++){
            Sample[i] = Random[rand() % 2];
        }
        return Sample;
    }

    void Print(string Name)
    {
        for(unsigned int i = 0; i < Name.size(); i++)
        {
            cout << Name[i] << " ";
            Sleep(200);
        }
    }

    void PrintSample(string start, int length, string Random)
    {
        Game Play;
        cout << "This is the sample sequence." << endl;
        cout << "Memorize it and press enter" << endl;
        Play.GetName(start);
        Play.Print(Play.SetName(Random, length));
        cout << endl;
    }

private:
    string Sample;
    string Answer;
};

int main()
{
    string Answer, cont, start;
    int length = 7;
    string Random = "01";
    Game Play;

    Play.PrintSample(start, length, Random);

return 0;
}

@nguyenchiemminhvu @ltd @Gio @Rok_Hoang

... viết 18:53 ngày 30/09/2018

Sửa setName lại thành

    string SetName(string Random, int length)
    {
        srand(time(NULL));
        for(int i = 0; i < length; i++){
            Sample.push_back(Random[rand()%2]); //problem is here
        }
        return Sample;
    }
nhatlonggunz viết 18:55 ngày 30/09/2018

Em cám ơn anh, em đã fix được lỗi trên.

  1. Anh có thể giải thích cho em tại sao phải làm vậy được không anh?
  2. Sau khi sửa thì em debug, thấy start vẫn là một string rỗng (start = ""), anh giúp em chỗ này với :’(
... viết 18:52 ngày 30/09/2018

string nó cũng dùng cấp phát động cho xâu c style rồi quản lý thôi. Chưa khởi tạo cho nó thì lấy đâu ra mà truy cập chỉ số.

Đã có đoạn code nào tác động vào start đâu mà nó có lưu giá trị được.

Bài liên quan
0