Массив из рандомных слов

Начал изучать C++ С помощью ПСП сформировать двухмерный MxN массив из текстовых элементов. В качестве элементов использовать слова из К..L символов А..Z. здесь М и N - соответственно число строк и столбцов формируемой матрицы; К и L - соответственно минимальное и максимальное число букв в формируемых словах - элементах массива. К, L, M, N - задаются самостоятельно. Выводит одинаковые символы и массив работает не правильно, работает только одинаковые числа(например 5 5), как можно исправить. И подскажите, что можно по программе упростить или исправить, а то я только начал и вижу что код как то не очень.

#include <iostream>
#include <iomanip>
#include <string>
#include <cstdlib>

using namespace std;

string words(int K, int L)
{
    int len; string Q = "";
    string symbols = "abcdefghijklmnopqrstuvwxyz";
    int ds = rand() % 26;
    len = rand() % (L - K) + K;
    for (int s = 0; s <= len; s++) {
        Q += symbols[ds];
    }
    return Q;
}

void main()
{
    setlocale(LC_ALL, "Rus");
    int K, L, m, n, q;
    cout << "Введите размерность массива" << endl;
    cin >> m; cin >> n;
    cout << "Введите максимальное и минимальное число букв в словах" << endl;
    cin >> K; cin >> L;
    
    string **arr;
    arr = new string * [m];
    for (int i = 0; i < m; i++) {
        arr[i] = new string[m];
    }

    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            arr[i][j] = words(K, L);
        }
    }

    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            cout << setw(12) << arr[i][j];
        }
        cout << endl;
    }
}

Ответы (0 шт):