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

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

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

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

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2015, 23:13
Ответы с готовыми решениями:

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

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

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

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

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

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 / 14
Регистрация: 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 / 14
Регистрация: 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 / 14
Регистрация: 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 / 14
Регистрация: 25.02.2015
Сообщений: 138
14.03.2015, 00:00 9
Вот результат
0
Миниатюры
Заполнить заштрихованную область матрицы нулями  
Mistik
19 / 19 / 14
Регистрация: 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 / 14
Регистрация: 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 / 14
Регистрация: 25.02.2015
Сообщений: 138
14.03.2015, 00:14 15
Daveper, в Builder XE3 все прекрасно работает...
0
Daveper
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 15
14.03.2015, 00:22  [ТС] 16
у меня VS2012

Добавлено через 2 минуты
при непарних значениях работает?
0
Mistik
19 / 19 / 14
Регистрация: 25.02.2015
Сообщений: 138
14.03.2015, 00:25 17
Да.
1
Миниатюры
Заполнить заштрихованную область матрицы нулями  
Daveper
0 / 0 / 0
Регистрация: 29.11.2014
Сообщений: 15
14.03.2015, 00:28  [ТС] 18
спасибо, буду тогда с копмилятором разбираться
0
14.03.2015, 00:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2015, 00:28

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

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

Определить, попадает ли заданная точка в заштрихованную область (границы не входят в область)
Условие: Напишите программу, которая определяет, попадает ли заданная точка в...


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

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

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