Форум программистов, компьютерный форум CyberForum.ru

Удаление элеметов динамического массива - C++

Восстановить пароль Регистрация
 
NewbieHere
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 10
10.12.2012, 20:24     Удаление элеметов динамического массива #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
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include "stdafx.h"
#include <iostream>
#include <iomanip>  
#include <stdlib.h>
#include <time.h>
 
using namespace std;
 int D;
 
void print_matrix(int **mtx, int N, int M)
{
    for(int i = 0; i < N; i++)
    {
        for(int j = 0; j < M; j++)
            cout << setw(4) << mtx[i][j] << " ";
 
        cout << endl;
    }
}
 
void fill_matrix(int **mtx, int N, int M)
{
    for(int i = 0; i < N; i++)
        for(int j = 0; j < M; j++)
            mtx[i][j] = rand() % 1000;
}
 
int matrix_operations (int **mtx, int N, int M)
{ 
    
    int ne4=0,chet=0;
    for(int i = 0; i < N; i++)
    {
        for(int j = 0; j < M; j++)
        {
                if (mtx[i][j]%2==1) ne4+=1 ;
            else chet+=1;
        }   
        
            
                
    
            if ((chet>ne4)&&(i!=N))
            {
                for (int k=i;k<N;k++);
                {
                memmove((void**)mtx[i],(void**)mtx[i+1],(M)*sizeof(int));
                
                N=N-1;
                mtx= (int **)realloc((void *)mtx,N*sizeof(int));
 
                }
                
            
            }
            ne4=0;chet=0;
            cout<<endl<<N;
    }
                D=N;
                    return(**mtx);
}
int main()
{
    srand((unsigned)time(NULL));
    
    int     N = 0, M = 0;
 
    while(N == 0)
    {
        cout << "Enter number of rows: "; 
        cin >> N;
    }
 
    while(M == 0)
    {
        cout << "Enter number of columns: "; 
        cin >> M;
    }
 
    int     **mtx = (int**) malloc(N*sizeof(int*));
 
    if(mtx == NULL)
    {
        cout << "Error: cannot allocate memory" << endl;
        return -1;
    }
 
    for(int i = 0; i < N; i++)
    {
        mtx[i] = (int*) malloc(M*sizeof(int));
 
        if(mtx[i] == NULL)
        {
            cout << "Error: cannot allocate memory" << endl;
            return -1;
        }
    }
 
    fill_matrix(mtx, N, M);
 
    print_matrix(mtx, N, M);
    matrix_operations (mtx,N,M);
    cout << endl<<D<<endl;
 
    print_matrix(mtx, D, M);
    cout<<endl;
    cout << D;
 
 
    for(int i = 0; i < N; i++)
        free(mtx[i]);
 
    free(mtx);
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2012, 20:24     Удаление элеметов динамического массива
Посмотрите здесь:

Удаление динамического массива C++
Удаление динамического массива строк C++
Удаление динамического массива C++
Удаление динамического массива C++
Удаление динамического массива C++
C++ Удаление динамического массива
Удаление динамического массива C++
C++ Удаление динамического массива

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
379 / 225 / 2
Регистрация: 17.12.2011
Сообщений: 816
Записей в блоге: 1
10.12.2012, 20:26     Удаление элеметов динамического массива #2
Какие ошибки выдает???
NewbieHere
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 10
11.12.2012, 19:11  [ТС]     Удаление элеметов динамического массива #3
Программа компилируется нормально, но бывают ошибки при работе с кучей т.е. программа иногда выходит за ее пределы, а вообще строки удаляются, как-то неправильно.

Добавлено через 50 секунд
Enter number of rows: 5
Enter number of columns: 5
737 417 657 980 767
526 670 598 538 311
678 721 250 824 520
476 437 238 252 944
420 302 909 433 111


0 0 0 0 0
678 721 250 824 520
476 437 238 252 944


пример работы

Добавлено через 2 часа 29 минут
Уже неделю мучаюсь с программой, ничего не выходит

Добавлено через 20 часов 4 минуты
Все еще нужна небольшая помощь
Yandex
Объявления
11.12.2012, 19:11     Удаление элеметов динамического массива
Ответ Создать тему
Опции темы

Текущее время: 14:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru