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

динамические массивы - C++

Восстановить пароль Регистрация
 
володік
0 / 0 / 0
Регистрация: 17.01.2012
Сообщений: 15
22.01.2012, 19:32     динамические массивы #1
Задали квадратную матрицу, все элементы которой равны единице. Написать функцию void func (int ** arr, int n), которая заполняет заштрихована пиксели нулями. Размер массива вводится с клавиатуры.
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2012, 19:32     динамические массивы
Посмотрите здесь:

Динамические массивы. C++
C++ Динамические массивы С++
C++ Динамические массивы
Динамические массивы C++
C++ Динамические массивы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Roof
 Аватар для Roof
154 / 154 / 10
Регистрация: 03.11.2010
Сообщений: 393
22.01.2012, 20:11     динамические массивы #2
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <iostream>
#include <iomanip>
using namespace std;
 
// заполнение массива единицами
void fill_array_one( int**, size_t );
// заполнение массива по схеме
void fill_array_scheme( int**, size_t );
// печать массива
void print_array( int**, size_t );
 
 
int main() {
    size_t dimm;
    int **my_arr;
 
    cout << "Введите размерность квадратной матрицы" << endl;
    cin >> dimm;
 
    my_arr = new int *[ dimm ];
 
    for ( size_t i = 0; i < dimm; i++ )
        my_arr[ i ] = new int[ dimm ];
 
    cout << "Квадратная матрица заполнена единицами" << endl;
    fill_array_one( my_arr, dimm );
    print_array( my_arr, dimm );
 
    cout << "Квадратная матрица заполнена по схеме" << endl;
    fill_array_scheme( my_arr, dimm );
    print_array( my_arr, dimm );
 
    for ( size_t i = 0; i < dimm; i++ )
            delete[] my_arr[ i ];
 
        delete[] my_arr;
 
    return 0;
}
 
void fill_array_one( int** arr, size_t n ){
    for ( size_t i = 0; i < n; ++i )
            for ( size_t j = 0; j < n; ++j )
                arr[ i ][ j ] = 1;
}
 
void fill_array_scheme( int** arr, size_t n ){
    for ( size_t i = 0; i < n; ++i )
            for ( size_t j = 0; j < n; ++j )
                if ( i >= j )
                    arr[ i ][ j ] = 0;
}
 
void print_array( int** array, size_t n ) {
    for ( size_t i = 0; i < n; ++i ){
        for ( size_t j = 0; j < n; ++j )
            cout << setw(2) << array[ i ][ j ] ;
    cout << endl;
    }
}
Консоль
Введите размерность квадратной матрицы
8
Квадратная матрица заполнена единицами
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
Квадратная матрица заполнена по схеме
0 1 1 1 1 1 1 1
0 0 1 1 1 1 1 1
0 0 0 1 1 1 1 1
0 0 0 0 1 1 1 1
0 0 0 0 0 1 1 1
0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0
володік
0 / 0 / 0
Регистрация: 17.01.2012
Сообщений: 15
22.01.2012, 21:04  [ТС]     динамические массивы #3
можно комментарии ???
Roof
 Аватар для Roof
154 / 154 / 10
Регистрация: 03.11.2010
Сообщений: 393
22.01.2012, 21:28     динамические массивы #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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// заполнение массива единицами
void fill_array_one( int**, size_t );
// заполнение массива по схеме
void fill_array_scheme( int**, size_t );
// печать массива
void print_array( int**, size_t );
 
int main() {
    size_t dimm;
    int **my_arr;
 
    cout << "Введите размерность квадратной матрицы" << endl;
    cin >> dimm;
    // создние одномерного массива указателей на одномерные массивы (на строки двумерного массива)
    my_arr = new int *[ dimm ];
    // выделение памяти под столбцы в каждой строке
    for ( size_t i = 0; i < dimm; i++ )
        my_arr[ i ] = new int[ dimm ];
 
    cout << "Квадратная матрица заполнена единицами" << endl;
    // заполняем массив единицами
    fill_array_one( my_arr, dimm );
    // печатаем массив
    print_array( my_arr, dimm );
 
    cout << "Квадратная матрица заполнена по схеме" << endl;
    // заполняем массив по схеме
    fill_array_scheme( my_arr, dimm );
    // печатаем массив
    print_array( my_arr, dimm );
 
    // очистка памяти занятой под столбцы каждой строки
    for ( size_t i = 0; i < dimm; i++ )
        delete[] my_arr[ i ];
 
    // удаление массива указателей на одномерные массивы (на строки двумерного массива) из памяти
    delete[] my_arr;
 
    return 0;
}
 
void fill_array_one( int** arr, size_t n ) {
    for ( size_t i = 0; i < n; ++i )
        for ( size_t j = 0; j < n; ++j )
            arr[ i ][ j ] = 1;
}
 
void fill_array_scheme( int** arr, size_t n ) {
    for ( size_t i = 0; i < n; ++i )
        for ( size_t j = 0; j < n; ++j )
            if ( i >= j )
                arr[ i ][ j ] = 0;
}
 
void print_array( int** array, size_t n ) {
    for ( size_t i = 0; i < n; ++i ) {
        for ( size_t j = 0; j < n; ++j )
            cout << setw( 2 ) << array[ i ][ j ];
        cout << endl;
    }
}
Yandex
Объявления
22.01.2012, 21:28     динамические массивы
Ответ Создать тему
Опции темы

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