Дать возможность пользователю создать и заполнить массив - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем привет! Пытаюсь реализовать метод конечных разностей, и, после недели в гугле, программа работает. Единственно что хотелось улучшить так это дать возможность пользователю самому задавать массив, по незнанию сделал "топорно и чтоб хоть как-то работало". Код всей программы приводить не буду, только лишь пример используемого массива:
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};
Задача для расчета температурного поля - тут массив 5х5. Как сделать, чтобы пользователь сам задавал размер массива/матрицы? Например 4х6, 7х5 и т.п.? И как задать отдельным столбцам/строкам отличные значения? Для пояснения - приведенный массив это температура тела (внутренняя с индексом 0) и его поверхности (с индексом pov), которые могут различаться.

Решение задачи: «Дать возможность пользователю создать и заполнить массив»

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;
}
//---------------------------------------------------------------------------

Объяснение кода листинга программы

В этом коде:

  1. Объявляются переменные n, m, i и j типа int, а также переменная T типа double **.
  2. С помощью функции scanf пользователь вводит значения переменных n и m.
  3. С помощью функции malloc выделяется память под массив T размером n с указателями на массивы размером m.
  4. В цикле for заполняются все элементы массива T случайными числами от 0 до 99 с помощью функции rand().
  5. В цикле for освобождается память, выделенная под каждый из массивов T[i].
  6. Освобождается память, выделенная под массив T.
  7. Показывается сообщение, что программа работает, с помощью функции getch.
  8. Программа завершается, возвращая 0.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы