Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
masyk
1 / 1 / 0
Регистрация: 20.10.2012
Сообщений: 34
1

Заполнить матрицу нулями

11.03.2013, 21:09. Просмотров 2266. Ответов 1
Метки нет (Все метки)

Задали квадратную матрицу, все элементы которой равны единице. Написать функцию void func (int ** arr, int n), которая заполняет заштрихованной области матрицы (согласно варианту) нулями. Размер массива вводится с клавиатуры.
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;
    }
}

она заполняет заданную матрицу с верхнего левого угла до нижнего правого, а мне нужно из правого верхнего в нижний левый
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2013, 21:09
Ответы с готовыми решениями:

Заполнить матрицу нулями над главной диагональю
всем привет! очень нужна ваша помощь. 1) нужно заполнить двухмерную матрицу...

Заполнить матрицу числами натурального ряда в порядке их возрастания, начиная с единицы, перемежающихся нулями
составить программу, решающую следующую задачу:Дано два натуральных числа n и...

Создать новую матрицу, скопировав её из исходной; заполнить 30% новой матрицы нулями в случайном порядке
Задание 3 скопировать 2-мерный массив и 30% чисел в нем заполнить ...

Заполнить матрицу случайными числами. Вернуть матрицу на 90o по часовой стрелке
Заполнить матрицу случайными числами. Вернуть матрицу на 90o по часовой стрелке.

Заполнить матрицу случайными числами. Развернуть матрицу на 90(градусов) против часовой стрелки
Заполнить матрицу случайными числами. Развернуть матрицу на 90o против часовой...

1
srg_btl
34 / 34 / 13
Регистрация: 21.02.2013
Сообщений: 90
12.03.2013, 14:59 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
61
#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;
    dimm = 5;
 
    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 >= n )
                    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;
    }
}
добавишь в условие n-1 занулит и диагональ
C++
1
2
if ( i + j >= n )
                    arr[ i ][ j ] = 0;
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2013, 14:59

Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали
Заполнить матрицу случайными числами. Отобразить матрицу симметрично...

Заполнить матрицу случайными числами. Разбить матрицу на квадраты размером 3х3. В центре каждого квадрата поме
Помогите пожалуйста есть некоторые мысли, ну успешного ответа нет :(((...

Заполнить заштрихованную область матрицы нулями
Задали квадратную матрицу, все элементы которой равны единице. Написать фунцию...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru