Форум программистов, компьютерный форум CyberForum.ru

Динамическое распределение памяти - C++

Восстановить пароль Регистрация
 
OCTPuE-RAVs
0 / 0 / 0
Регистрация: 26.12.2012
Сообщений: 27
21.06.2013, 19:09     Динамическое распределение памяти #1
Прошу помощи!

Даны действительные числа a1...an2 . Получить действительную квадратную матрицу порядка n<8, элементами которой являются числа , расположенные в ней по схеме.

Матрица размещается в памяти динамически с помощью операции new, значение n вводится по запросу с клавиатуры. В конце работы программы освободить выделенную память. Вывести полученную матрицу

Застрял тут:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
using namespace std;
 
int main()
{
    int n, arr;
    cin >> n;
    arr = new int *[n];
        {
{
    delete [] arr;
    system("pause");
}
Изображения
 
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4922 / 2665 / 243
Регистрация: 29.11.2010
Сообщений: 7,420
21.06.2013, 19:26     Динамическое распределение памяти #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
int main()
{
    int n;
    bool right = true;
    std::cin >> n;
    int **arr = new int*[n];
    for (int i=0; i < n; i++)
    {
        arr[i] = new int[n];
        for (int j=0; j < n; j++)
            arr[i][j] = i*n + j + 1;
        for (int j=0; j < n; j++)
            std::cout << (right ? arr[i][j] : arr[i][n-j-1]) << " ";
        std::cout << std::endl;
        right ^= 1;
        delete [] arr[i];
    }
    delete [] arr;
}
OCTPuE-RAVs
0 / 0 / 0
Регистрация: 26.12.2012
Сообщений: 27
21.06.2013, 19:34  [ТС]     Динамическое распределение памяти #3
@MrGluck, Большое Спасибо!)
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
21.06.2013, 19:49     Динамическое распределение памяти #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <iomanip>
 
int** getSquareMatrix(int n)
{
    int **arr = new int * [n];
    for (int i = 0; i != n; ++i) arr[i] = new int [n];
    return arr;
}
 
void deleteSquareMatrix(int **arr, int n)
{
    for (int i = 0; i != n; ++i) delete[] arr[i];
    delete[] arr;
}
 
int main ()
{
    int n; std::cin >> n;
    int **arr = getSquareMatrix(n);
 
    for (int i = 0; i != n; ++i)
        for (int j = 0; j != n; ++j)
            arr[i][ i % 2 ? n - j - 1 : j ] = i * n + j;
 
    for (int i = 0; i != n; ++i, std::cout << std::endl)
        for (int j = 0; j != n; ++j)
            std::cout << std::setw(4) << arr[i][j];
 
    deleteSquareMatrix(arr, n);
    return 0;
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4922 / 2665 / 243
Регистрация: 29.11.2010
Сообщений: 7,420
21.06.2013, 19:51     Динамическое распределение памяти #5
@Olivеr, не самая лучшая идея выносить выделение/освобождение памяти в функцию. Надо довольствоваться правилом "Кто память выделяет, тот её и освобождает."
Yandex
Объявления
21.06.2013, 19:51     Динамическое распределение памяти
Ответ Создать тему
Опции темы

Текущее время: 20:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru