0 / 0 / 0
Регистрация: 08.12.2020
Сообщений: 106
1

Как сделать, что бы удаленные элементы матрицы заменяло 0

08.05.2021, 01:45. Показов 1080. Ответов 3
Метки нет (Все метки)

Подскажите пожалуйста никак не могу сделать чтобы удаленные элементы матрицы заменяло на 0.Вот условие:
Напишите функцию для удаления строки из двумерного массива. Остальные строки должны располагаться плотно, изъятые элементы заменить 0 С помощью разработанных функций удалите из массива строки с номерами от А до В.
Заранее спасибл
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
62
63
64
65
66
67
68
69
70
71
72
73
#include <iostream>
 
using namespace std;
 
void fill_matrix(int a[100][100], int n, int m)
{
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            a[i][j] = rand() % 50;
        }
    }
}
 
void print_matrix(int a[100][100], int n, int m)
{
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            cout << a[i][j] << "\t";
        }
        cout << endl;
    }
}
 
void delete_row(int a[100][100], int& n, int m, int row)
{
    for (int i = row; i < n - 1; i++)
    {
        for (int j = 0; j < m; j++)
        {
            a[i][j] = a[i + 1][j];
        }
    }
 
    for (int j = 0; j < m; j++)
    {
        a[n - 1][j] = 0;
    }
 
    n--;
}
 
int main()
{
    int n, m;
    cout << "n = ";
    cin >> n;
    cout << "m = ";
    cin >> m;
 
    int a[100][100];
 
    fill_matrix(a, n, m);
    print_matrix(a, n, m);
 
    int start, end;
    cout << "a = ";
    cin >> start;
 
    cout << "b = ";
    cin >> end;
 
    for (int i = start; i <= end; i++)
    {
        delete_row(a, n, m, start);
    }
 
    cout << "Result" << endl;
    print_matrix(a, n, m);
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2021, 01:45
Ответы с готовыми решениями:

Никак не могу сделать чтобы удаленные элементы заменяло на 0
Никак не могу сделать чтобы удаленные элементы заменяло на 0.Вот условие: Напишите функцию для...

Что такое удаленные элементы и как сортировать стек?
Создать динамические структуры – основной стек, содержащий максимально 25 вещественных элементов и...

Как подкоректировать мой код что бы оно заменяло повторяющиеся символы на цифыр
#include &quot;dialog.h&quot; #include &quot;ui_dialog.h&quot; #include &lt;QTextCodec&gt; #include &lt;string&gt; #include...

Что сделать, чтобы в корзине отображались удаленные файлы?
Подскажите, как решить проблему с корзиной. По порядку: 1. На рабочем столе пустая корзина. 2....

3
129 / 81 / 49
Регистрация: 10.01.2020
Сообщений: 293
08.05.2021, 08:36 2
Sasha_hutsul, я так полагаю, элементы из матрицы не удаляются, а заменяются на 0, что условно называется удалением?
0
7416 / 5011 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
08.05.2021, 10:30 3
Лучший ответ Сообщение было отмечено Sasha_hutsul как решение

Решение

подправил. массив лучше динамический. добавил проверку на ввод корректных значений A,B
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
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <iostream>
#include <utility>
#include <cstdlib>
#include <ctime>
using namespace std;
 
void fill_matrix(int **a, int n, int m)
{
    for (int i = 0; i < n; i++)    
        for (int j = 0; j < m; j++)        
            a[i][j]=rand()%9 + 1;    
}
 
void print_matrix(int **a, int n, int m)
{
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)        
            cout << a[i][j] << " ";        
        cout << "\n";
    }
}
 
void delete_row(int **a, int n, int m, int row)
{
    for (int i = row; i < n-1; i++)    
        for (int j = 0; j < m; j++)        
            a[i][j]=a[i+1][j];
 
    for (int j = 0; j < m; j++)    
        a[n-1][j]=0;    
}
 
int main()
{
    int n, m, A, B;
    cout << "n="; cin >> n;
    cout << "m="; cin >> m;
 
      int **a = new int*[n]; 
    for (int i = 0; i < n; i++)
       a[i] = new int[m];
 
    fill_matrix(a,n,m);
    print_matrix(a,n,m);    
    
    do
    {
        cout << "A="; cin >> A;
        if (A<1 || A>n) cout << " Repeat please...\n";
    }
    while (A<1 || A>n);
    
    do
    {
        cout << "B="; cin >> B;
        if (B<1 || B>n) cout << " Repeat please...\n";
    }
    while (B<1 || B>n);
    
    if(A>B) swap(A,B);
 
    for (int i = A; i <= B; i++)    
        delete_row(a,n,m,A-1);    
 
    cout << "Result:\n";
    print_matrix(a,n,m);
    
    for (int i = 0; i < n; i++)
    delete[]a[i];
    delete[]a;
system("pause");
return 0;
}
1
0 / 0 / 0
Регистрация: 08.12.2020
Сообщений: 106
08.05.2021, 11:52  [ТС] 4
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.05.2021, 11:52
Помогаю со студенческими работами здесь

Что сделать, чтобы в корзине отображались удаленные файлы
Подскажите, как решить проблему с корзиной. По порядку: 1. На рабочем столе пустая корзина....

Как восстановить удаленные элементы справочников?
Два элемента справочника 'Фирмы' нечаянно непосредственно удалили, теперь летят все доки за год,...

Подправить программу . Нужно чтобы не один элемент на главной диагонали заменяло ,а все элементы диагонали
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;time.h&gt; using namespace std; int main() { ...

Как одним махом пометить все что есть в таблице в DataSet как удаленные записи?
Как одним махом пометить все, что есть в таблице в DataSet как удаленные записи? При этом неважно,...

как тут сделать чтобы он выводил введенные элементы матрицы нормально, как надо, а не сикась на кось
Ребята подскажите, как тут сделать чтобы он выводил введенные элементы матрицы нормально, как надо,...

Как сделать что бы элементы были поверх изображения
Дела такие, создал форму, добавил на неё кнопок, текстбоксов...А теперь решил на фон поставить...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru