C не поддерживает изначально двумерные массивы, вам нужно выделить массив массивов. Вы не знаете размер заранее, поэтому вам нужно динамически распределять память массивов, используя malloc
.
. Для генерации случайных чисел вы можете использовать rand
, но сначала вам нужно установить начальное число. для последовательности псевдослучайных целых чисел, используя srand
, чтобы получить (возможно) различное число при каждом выполнении, или вы можете использовать rand_r
, чтобы выполнить обе операции с одной функцией. Обратите внимание, что rand генерирует случайное число между 0
и RAND_MAX
, вам нужно использовать трюк с оператором модуля %
, чтобы сгенерировать случайное число в заданном c диапазоне [min, max].
min + (rand() % (max - min + 1))
Вы можете перебирать массивы с двумя циклами, чтобы получить максимальное число.
Чтобы узнать, как использовать эту функцию, вы можете прочитать справочные страницы: mallo c rand
В качестве примечания: для получения максимального числа двумерный массив на самом деле не нужен, его можно вычислить напрямую, выделив дополнительную память.
Ваше решение будет работать, но оно ограничено 100 столбцами и 100 строками. Например, если пользователь вводит большие числа, ваш код будет в основном кра sh. Одним из решений является проверка ввода и отклонение чисел выше 100, если вы не хотите обрабатывать динамическое выделение памяти c, но в реальном мире это происходит очень редко, а динамическое c выделение памяти необходимо.
Вы не должны называть свои переменные односимвольными именами, особенно если они живут долго. Хорошее описательное имя, например columnsNumber
, является предпочтительным.