Матрица - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > Полезное / Common > Программирование / Programming > Java

Java В данном форуме вы сможете найти много полезной информации по платформе Java. Подробные статьи, исходные коды и конечно учебники как для новичков так и профессиональных Java разработчиков вы найдёте здесь. Если у вас есть вопрос или хотите поделится своими наработками, пожалуйста, делайте это в этой теме.

Ответ
Опции темы
Непрочитано 08.05.2012, 08:18   #1
Пользователь

Автор темы (Топик Стартер) Матрица

Есть двумерный массив mas1[SIZE][SIZE] и mas2[SIZE-1][SIZE-1]
при чём известен mas1[SIZE][SIZE]
и нужно скопировать из mas1 в mas2 все элементы, кроме столбика d_column и строчки d_line
то есть например
SIZE=4//константой
mas1[SIZE][SIZE]=
{
9 8 7 6
5 4 3 2
1 0 9 8
9 8 7 6
}
d_column=2
d_line=3
получаем mas2[3][3] (то есть [SIZE-1][SIZE-1]:
9 7 6
5 3 2
9 7 6

можно организвать перенос в цикле из 1 массива во 2, кроме этих чисел.
или переместить в конец с помощью 3-ей переменной (например temp) меняя местами с последующим элементом. а потом как удалить последнии элементы? вывод SIZE-1 раз не годится, нужен целый массив (без такой обманки с выводом )

у кого есть какие идеи? просьба помочь...
Язык Java, C/C++ - не принципиально (но нужно под C/C++), главное - алгоритм...
Jokko вне форума Ответить с цитированием
Непрочитано 08.05.2012, 08:26   #2
Пользователь

По умолчанию Re: Матрица

Код:
mas2 = new int[SIZE-1][SIZE-1];
int a=0, b=0;
for(int i=0; i < SIZE; ++i) 
{
   if(i == d_line)
      continue;
   mas2[a++] = new int[SIZE - 1];
   for(int j = 0; j < SIZE; ++j)
   {
        if(j == d_column)
           continue;
        mas2[a][b++] = j;
   }
}
__________________
http://fw-tm.ru/ - Разработка эмулятора Goddess of Destruction

Последний раз редактировалось Neiwick; 08.05.2012 в 08:48. Причина: синтаксическая ошибка
Neiwick вне форума Отправить сообщение для Neiwick с помощью ICQ Отправить сообщение для Neiwick с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 08.05.2012, 08:29   #3
Пользователь

Автор темы (Топик Стартер) Re: Матрица

if(j=d_column)
только наверное ==

Добавлено через 5 минут
и если можно, без указателей.

Последний раз редактировалось Jokko; 08.05.2012 в 08:34. Причина: Добавлено сообщение
Jokko вне форума Ответить с цитированием
Непрочитано 08.05.2012, 08:51   #4
Пользователь

По умолчанию Re: Матрица

Код:
int mas2[SIZE-1][SIZE-1];
int a=0, b=0;
for(int i=0; i < SIZE; ++i) 
{
   if(i == d_line)
      continue;
   for(int j = 0; j < SIZE; ++j)
   {
        if(j == d_column)
           continue;
        mas2[a][b++] = mas1[i][j];
   }
   a++;
}
__________________
http://fw-tm.ru/ - Разработка эмулятора Goddess of Destruction

Последний раз редактировалось Neiwick; 08.05.2012 в 09:13. Причина: Утренний тупняк
Neiwick вне форума Отправить сообщение для Neiwick с помощью ICQ Отправить сообщение для Neiwick с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 08.05.2012, 08:58   #5
Пользователь

Автор темы (Топик Стартер) Re: Матрица

и где же тут задействован первый массив?
Jokko вне форума Ответить с цитированием
Непрочитано 08.05.2012, 09:13   #6
Пользователь

По умолчанию Re: Матрица

Исправил в предыдущем посте
__________________
http://fw-tm.ru/ - Разработка эмулятора Goddess of Destruction
Neiwick вне форума Отправить сообщение для Neiwick с помощью ICQ Отправить сообщение для Neiwick с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 08.05.2012, 16:11   #7
Пользователь

Автор темы (Топик Стартер) Re: Матрица


:
Свернуть ↑Развернуть ↓
Jokko вне форума Ответить с цитированием
Непрочитано 08.05.2012, 16:32   #8
Пользователь

По умолчанию Re: Матрица

Код:
	Console::WriteLine(L"\nПосле:");
	for(i=0;i<SIZE-1;i++)
	{
		for(j=0;j<SIZE-1;j++)
		{
			printf("%d ", mas2[i][j]);
		}
		printf("\n");
	}
Вот так поробуйте
__________________
http://fw-tm.ru/ - Разработка эмулятора Goddess of Destruction
Neiwick вне форума Отправить сообщение для Neiwick с помощью ICQ Отправить сообщение для Neiwick с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 08.05.2012, 18:07   #9
Пользователь

Автор темы (Топик Стартер) Re: Матрица

вообще жесть какая-то получается
Jokko вне форума Ответить с цитированием
Непрочитано 08.05.2012, 18:23   #10
Пользователь

По умолчанию Re: Матрица

Код:
#include "stdafx.h"
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <iostream>
#define SIZE 4

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	int mas1[SIZE][SIZE],i,j;
	cout << "До:" << endl;
	for(i=0;i<SIZE;i++)
	{
		for(j=0;j<SIZE;j++)
		{
			mas1[i][j]=rand()%100;
			printf("%d ", mas1[i][j]);
		}
		printf("\n");
	}

	int d_line=2, d_column=2;
	d_line--, d_column--;

	int mas2[SIZE-1][SIZE-1];
	int a=0, b;
	for(int i=0; i < SIZE; i++) 
	{
		if(i == d_line)
			continue;
		b=0;
		for(int j = 0; j < SIZE; j++)
		{
			if(j == d_column)
				continue;
			mas2[a][b++] = mas1[i][j];
		}
		a++;
	}
	
	cout<< "После:" << endl;
	for(i=0;i<SIZE-1;i++)
	{
		for(j=0;j<SIZE-1;j++)
		{
			printf("%d ", mas2[i][j]);
		}
		printf("\n");
	}
	_getch();
	return 0;
}
__________________
http://fw-tm.ru/ - Разработка эмулятора Goddess of Destruction
Neiwick вне форума Отправить сообщение для Neiwick с помощью ICQ Отправить сообщение для Neiwick с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 15:35. Часовой пояс GMT +3.

Вверх