Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/75: Рейтинг темы: голосов - 75, средняя оценка - 4.72
1 / 1 / 0
Регистрация: 20.10.2012
Сообщений: 34
1

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

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

Author24 — интернет-сервис помощи студентам
Задали квадратную матрицу, все элементы которой равны единице. Написать функцию 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.03.2013, 21:09
Ответы с готовыми решениями:

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

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

Дана матрица n*m .Заполнить последнюю строку и столбец нулями. Вывести исходную матрицу и конечную
Дана матрица n*m .Заполнить последнюю строку и столбец нулями. Вывести исходную матрицу и конечную.

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

1
35 / 35 / 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
12.03.2013, 14:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.03.2013, 14:59
Помогаю со студенческими работами здесь

Заполнить 2ю диагональ нулями
Помогите пожалуйста , заполнить вторую диагональ нулями если сумма первой диагонали делится на 3 ...

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru