Для заполнения матрицы случайными (точнее, псевдослучайными) числами можно создать функцию, генерирующую числа из заданного диапазона. Все-таки, хорошо знакомая нам функция rand() генерирует числа из диапазона от 0 до 32767. Кроме того, при использовании этой функции без дополнительных манипуляций псевдослучайная последовательность будет всегда одной и той же. Для устранения этого недостатка мы напишем аналог функции randomize(), которая используется, например, в Паскале.
Итак, для простоты мы не будем увеличивать диапазон возможных значений, поскольку для наших целей этого вполне достаточно, но введём возможность смещения этого диапазона в сторону отрицательных чисел. Вспомним, что ограничить диапазон можно с помощью взятия остатка от деления:
int r = rand()%100;
Число r будет псевдослучайным числом из диапазона от 0 до 99. Сместить диапазон можно посредством прибавления минимально желаемого значения. Например,
int r = rand()%100 - 20;
Теперь число r будет псевдослучайным числом из диапазона от -20 до 79. Реализуем описанные действия в виде функции:
int rnd(int min, int max) {
return rand()%(max-min) + min;
}
Наконец, реализовать функцию randomize() можно так:
void randomize() {
srand(time(0));
}
Не забудьте подключить библиотеку time.h.