Функция rand в с++ выдаёт одни и те же числа
for (; i < 10; i++) {
mas[i] = rand();
}
генерирует одни и те же числа как исправить ?
И правильно делает. Ведь она генерирует псевдо-случайные числа. Псевдо означает что числа рассчитываются по формуле опираясь на некое начальное значение. По умолчанию это значение одинаковое при каждом новом запуске программы. А поэтому и числа будут генерироваться одинаковые (кстати этому можно находить применение).
Для замены начального значения (а следовательно и всех остальных чисел) нужно вызывать функцию srand(x) - где х некое число. Самый простой способ менять это число при каждом запуске программы - подставлять вместо него полное время (которое очевидно будет всегда разным). Так вместо х записывается time(NULL). Эта функция меняет значение каждую секунду. Так что если запустить две одинаковые программы одновременно - они по прежнему будут выдавать одинаковые числа)
#include <ctime>
#include <cstdlib>
using namespace std;
int main(){
srand(time(NULL));
...