Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2012, 20:12   #1
NewbieHere
Новичок
Джуниор
 
Регистрация: 10.12.2012
Сообщений: 1
По умолчанию Динамический массив

Всем привет.
Задаю двумерный динамический массив.
Необходимо исключить из массива столбцы и строки, по какому-либо признаку.

Вот пример по количеству четных и нечетных элементов, что не так? Пока только для строк, для столбцов идей еще нет, пока со строками не разберусь


Код:
#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;
}

Последний раз редактировалось NewbieHere; 10.12.2012 в 20:25.
NewbieHere вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический Массив С++ Voldemort93 Помощь студентам 7 08.10.2011 09:42
Динамический массив, массив указателей alexalisa Паскаль, Turbo Pascal, PascalABC.NET 4 22.04.2011 21:33
C++. динамический массив kira_truelove Помощь студентам 1 19.12.2010 11:59
Динамический массив - или всё таки не динамический? vedro-compota Общие вопросы C/C++ 30 10.12.2010 23:22
Динамический массив в С# Денис89 Общие вопросы .NET 7 09.09.2010 22:42