Дать возможность пользователю создать и заполнить массив - C (СИ)
Формулировка задачи:
Всем привет! Пытаюсь реализовать метод конечных разностей, и, после недели в гугле, программа работает. Единственно что хотелось улучшить так это дать возможность пользователю самому задавать массив, по незнанию сделал "топорно и чтоб хоть как-то работало". Код всей программы приводить не буду, только лишь пример используемого массива:
Задача для расчета температурного поля - тут массив 5х5. Как сделать, чтобы пользователь сам задавал размер массива/матрицы? Например 4х6, 7х5 и т.п.? И как задать отдельным столбцам/строкам отличные значения?
Для пояснения - приведенный массив это температура тела (внутренняя с индексом 0) и его поверхности (с индексом pov), которые могут различаться.
double T[5][5] = {tw0, tw0, tw0, tw0, tw0, tw0, tw0, tw0, tw0, tw0, tw0, tw0, tw0, tw0, tw0, tw0, tw0, tw0, tw0, tw0, twpov, twpov, twpov, twpov, twpov};
Решение задачи: «Дать возможность пользователю создать и заполнить массив»
textual
Листинг программы
//--------------------------------------------------------------------------- #include <stdio.h> int main() { int n, m, i, j; double **T; // Объявляем scanf( "%d%d", &n, &m ); // Вводим размеры printf( "n=%d, m=%d", n, m ); // T = (double**) malloc( n * sizeof(double*) ); //// Выделяем память for( i=0; i<n; i++ ) // T[i] = (double*) malloc( m * sizeof(double) ); //// for( i=0; i<n; i++ ) //// Заполняем for( j=0; j<n; j++ ) // T[i][j] = rand()%100; //// for( i=0; i<n; i++ ) //// Удаляем free( T[i] ); // free( T ); //// getch(); return 0; } //---------------------------------------------------------------------------
Объяснение кода листинга программы
В этом коде:
- Объявляются переменные
n
,m
,i
иj
типаint
, а также переменнаяT
типаdouble **
. - С помощью функции
scanf
пользователь вводит значения переменныхn
иm
. - С помощью функции
malloc
выделяется память под массивT
размеромn
с указателями на массивы размеромm
. - В цикле
for
заполняются все элементы массиваT
случайными числами от 0 до 99 с помощью функцииrand()
. - В цикле
for
освобождается память, выделенная под каждый из массивовT[i]
. - Освобождается память, выделенная под массив
T
. - Показывается сообщение, что программа работает, с помощью функции
getch
. - Программа завершается, возвращая 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д