Для генерации случайных чисел использую rand() перед этим иницииирую таймер srand(time(NULL));, но при каждом перезапуске программы числа одинаковые...
Инициирую за телом цикла, вот код:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand(time(NULL));
setlocale(LC_ALL, "Russian");
int randomDigits[7] = {};
for (int i = 0; i < 7; i++)
{
cout << randomDigits[i] << endl;
}
system("pause");
return 0;
}
Ну добавьте вот такой цикл...
int randomDigits[7] = {};
for (int i = 0; i < 7; i++)
{
randomDigits[i] = rand();
}
В этом объявлении
int randomDigits[7] = {};
вы инициализировали все элементы массива нулем.
Более нигде в программе вы не изменяли значения элементов массива.
Если вы хотите задать значения элементов массива случайными числами (например, цифрами от 0 до 10 исключительно), то вам следует использовать стандартную C функцию. rand, объявленную в заголовке <cstdlib>.
У вас имеется несколько подходов.
Например, обычный for цикл.
#include <cstdlib>
// ...
for( size_t i = 0; i < sizeof( randomDigits ) / sizeof( *randomDigits ); i++ )
{
randomDigits[[i] = std::rand() % 10;
}
Вместо выражения sizeof( randomDigits ) / sizeof( *randomDigits ) вы могли бы в C++17 использовать стандартную функцию std::size, объявленную в заголовке <iterator>. Например,
#include <cstdlib>
#include <iterator>
// ...
for( size_t i = 0; i < std::size( randomDigits ); i++ )
{
randomDigits[[i] = std::rand() % 10;
}
Также вы могли бы использовать предложение for на основе диапазонов. Например,
#include <cstdlib>
// ...
for( auto &item : randomDigits )
{
item = std::rand() % 10;
}
И, наконец, вы могли бы использовать стандартный алгоритм std::generate. Например,
#include <cstdlib>
#include <iterator>
#include <algorithm>
// ...
std::generate( std::begin( randomDigits ), std::end( randomDigits ),
[] { return std::rand() % 10; } );
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости