Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Daveper
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 15
#1

Заполнить заштрихованную область матрицы нулями - C++

13.03.2015, 23:13. Просмотров 454. Ответов 17
Метки нет (Все метки)

Задали квадратную матрицу, все элементы которой равны единице. Написать фунцию void func (int** arr, int n) которая заполняет заштрихованную область матрицы нулями. Размер массива вводится с клавиатуры.
0
Изображения
 
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2015, 23:13
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Заполнить заштрихованную область матрицы нулями (C++):

Написать функцию, которая заполняет заштрихованную область матрицы нулями - C++
Задана квадратная матрица, все элементы которой ровные единицы. Написать функцию void func (int** arr, int n), которая заполняет...

Работа с матрицей. Написать фунцию которая заполняет заштрихованную область матрицы нулями - C++
Задали квадратную матрицу, все элементы которой равны единице. написать фунцию void func (int** arr, int n) которая заполняет...

Заполнить нулями заданную область матрицы - C++
Задана квадратная матрица, все элементы которой равны единице. Написать функцию void func (int ** arr, int n), которая заполняет...

Заполнить заданную область квадратной матрицы единицами, а остальное - нулями - C++
Данная действительно квадратная матрица размерности N. Заполнить матрицу в заштрихованной области единицами, в не заштрихованной - нулями.

Вычислить максимальное значение, среди элементов заданной матрицы, попадающих в заштрихованную область - C++
1. Задан числовой массив 12х12. С помощью циклического алгоритма решить одну из двух задач. Вычислить максимальное значение, среди...

Заполнить нулями элементы квадратной матрицы, расположенными по её периметру - C++
Заполнить нулями элементы квадратной матрицы, расположенными по её периметру. Нужно написать, используя функции. Кто может помочь?

17
Daveper
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 15
13.03.2015, 23:31  [ТС] #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
 #include <iostream>
using namespace std;
 
void func (int** arr, int n);
 
int main()
{
    cout << "Vvedit rozmirnist matrici: ";
    int n;
    cin >> n;
 
    int **matrix = new int*[n]();
    for(int i = 0; i < n; ++i)
    matrix[i] = new int[n]();
    
    for(int i = 0; i < n; ++i)
    for(int j = 0; j < n; ++j)
    matrix[i][j] = 1;
 
    func(matrix, n);
 
    for(int i = 0; i < n; ++i)
    {
        for(int j = 0; j < n; ++j)
        cout << matrix[i][j] << ' ';
        cout << endl;
    }
 
    for(int i = 0; i < n; ++i)
    delete [] matrix[i];
    delete [] matrix;
}
 
void func(int** arr, int n)
{
    for(int i = 0; i < n/2+1; ++i)
    for(int j = i; j < n-i; ++j)
    {
        arr[i][j] = 0;
        arr[n-i-1][j] = 0;
    }
}
0
Изображения
 
Mistik
19 / 19 / 5
Регистрация: 25.02.2015
Сообщений: 138
13.03.2015, 23:43 #3
C++
1
2
3
4
5
6
7
8
9
10
void func(int** arr, int n)
{
    for(int i = 0; i < n/2+1; ++i)
        for(int j = i; j < n-i; ++j)
        {
            arr[(n/2)-i-1][j] = 0;
            arr[i+(n/2)][j] = 0;
        }
 
}
Вот решение, замени эту функцию в своём примере
0
Daveper
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 15
13.03.2015, 23:52  [ТС] #4
вставил, не работает, программа прекращает свою работу
0
Mistik
19 / 19 / 5
Регистрация: 25.02.2015
Сообщений: 138
13.03.2015, 23:54 #5

Не по теме:

нужно хоть что-то понимать...



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
 #include <iostream>
 #include <conio.h>
 
using namespace std;
 
void func (int** arr, int n);
 
int main()
{
    cout << "Vvedit rozmirnist matrici: ";
    int n;
    cin >> n;
 
    int **matrix = new int*[n];
    for(int i = 0; i < n; ++i)
    matrix[i] = new int[n];
 
    for(int i = 0; i < n; ++i)
    for(int j = 0; j < n; ++j)
    matrix[i][j] = 1;
 
    func(matrix, n);
 
    for(int i = 0; i < n; ++i)
    {
        for(int j = 0; j < n; ++j)
        cout << matrix[i][j] << ' ';
        cout << endl;
    }
 
    for(int i = 0; i < n; ++i)
    delete [] matrix[i];
    delete [] matrix;
 
    getch();
}
 
void func(int** arr, int n)
{
    for(int i = 0; i < n/2+1; ++i)
        for(int j = i; j < n-i; ++j)
        {
            arr[(n/2)-i-1][j] = 0;
            arr[i+(n/2)][j] = 0;
        }
 
}
0
Daveper
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 15
13.03.2015, 23:58  [ТС] #6
не работает, дальше прекращает работу
0
Mistik
19 / 19 / 5
Регистрация: 25.02.2015
Сообщений: 138
13.03.2015, 23:59 #7
Цитата Сообщение от Daveper Посмотреть сообщение
не работает, дальше прекращает работу
в какой момент она прекращает работу?
0
Daveper
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 15
14.03.2015, 00:00  [ТС] #8
компиляция проходит успешно, но к примеру ввожу размерность - 5, запускаю и тут программа прекращает работу
0
Mistik
19 / 19 / 5
Регистрация: 25.02.2015
Сообщений: 138
14.03.2015, 00:00 #9
Вот результат
0
Миниатюры
Заполнить заштрихованную область матрицы нулями  
Mistik
19 / 19 / 5
Регистрация: 25.02.2015
Сообщений: 138
14.03.2015, 00:01 #10
Цитата Сообщение от Daveper Посмотреть сообщение
компиляция проходит успешно, но к примеру ввожу размерность - 5, запускаю и тут программа прекращает работу
у вас какой компилятор?

Если Visual Studio, то замените в функции main()
C++
1
getch();
на
C++
1
_getch();
А если Builder - то там как видно по скрину выше, все работает
0
Daveper
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 15
14.03.2015, 00:03  [ТС] #11
хмм...значит у меня проблема с компилятором
0
Миниатюры
Заполнить заштрихованную область матрицы нулями  
Mistik
19 / 19 / 5
Регистрация: 25.02.2015
Сообщений: 138
14.03.2015, 00:08 #12
Daveper, вы заменили на _getch() ?

Добавлено через 1 минуту
Попробуйте так:
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
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
void func (int** arr, int n);
 
int main()
{
    cout << "Vvedit rozmirnist matrici: ";
    int n;
    cin >> n;
 
    int **matrix = new int*[n];
    for(int i = 0; i < n; ++i)
    matrix[i] = new int[n];
 
    for(int i = 0; i < n; ++i)
    for(int j = 0; j < n; ++j)
    matrix[i][j] = 1;
 
    func(matrix, n);
 
    for(int i = 0; i < n; ++i)
    {
        for(int j = 0; j < n; ++j)
        cout << matrix[i][j] << ' ';
        cout << endl;
    }
 
    for(int i = 0; i < n; ++i)
    delete [] matrix[i];
    delete [] matrix;
 
    system("pause");
}
 
void func(int** arr, int n)
{
    for(int i = 0; i < n/2+1; ++i)
        for(int j = i; j < n-i; ++j)
        {
            arr[(n/2)-i-1][j] = 0;
            arr[i+(n/2)][j] = 0;
        }
}
1
Daveper
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 15
14.03.2015, 00:10  [ТС] #13
да.

Добавлено через 2 минуты
не работает(
0
Daveper
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 15
14.03.2015, 00:14  [ТС] #14
ввел парное число работает, при непарних - не работает
0
Миниатюры
Заполнить заштрихованную область матрицы нулями  
Mistik
19 / 19 / 5
Регистрация: 25.02.2015
Сообщений: 138
14.03.2015, 00:14 #15
Daveper, в Builder XE3 все прекрасно работает...
0
14.03.2015, 00:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2015, 00:14
Привет! Вот еще темы с ответами:

Заполнить нулями элементы квадратной матрицы, расположенными по её периметру - C++
Заполнить нулями элементы квадратной матрицы, расположенными по её периметру. кто может помочь написать? Срочно нужно сдать.

Заполнить первую половину матрицы размером n*n единицами, а вторую - нулями - C++
2. Заполнить первую половину двумерного массива размерности n x n еденицами, а вторую 0 , выручите пожалуйста

Заполнить элементы главной диагонали матрицы нулями остальные единицами - C++
Дала целочисленная матрица nxn. Заполнить элементы: главной диагонали 0, остальные 1.

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


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

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

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