#include <iostream>
#include <ctime>
using namespace std;
class massive {
private:
int b[4];
public:
massive() {
srand(time(0));
for (int i = 0; i < 4; i++) {
b[i] = 1 + rand() % 10;
cout << b[i] << " ";
}
cout << "\n";
}
};
int main() {
massive a;
massive b;
return 0;
}
Почему при выполнении кода оба массива постоянно инициализируются (или, по крайней мере, выводятся на экран) одинаковыми числами? https://www.onlinegdb.com/edit/B1wiCeG2m
Так происходит потому что srand(time(0)); нужно вызывать в функции main, тогда у тебя будут разные значения.
Вот рабочий код.
#include <ctime>
#include <iostream>
using namespace std;
class massive
{
private:
int b[4];
public:
massive()
{
for (int i = 0; i < 4; i++)
{
b[i] = 1 + rand() % 10;
cout << b[i] << " ";
}
cout << "\n";
}
};
int main()
{
srand(time(0));
massive a;
massive b;
system("pause");
return 0;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Дана задача, в которой надо ввести числа в массив, при этом, вводить их надо через пробел