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

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

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2012, 18:42   #1
Hayaname
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 12
По умолчанию Заполнить двумерный массив числами

Уважаемые, форумчане!

Прошу Вашей подсказки по реализации такого алгоритма:

Дана, к примеру матрица 5 на 5:

int width = 5;
int hight = 5;

byte[][] matrix = new byte[this.hight][this.width];

Данный массив (matrix) нужно заполнить 0 и 1 по массиву mass:
int[] mass = {2, 0, 3, 1 и тд}

Массив mass формируется по алгоритму RLE, то есть последовательность:
00111 будет записана как - 2 0 3 1, то есть первое число это количество символов, а второе число - каких именно символов.


Так вот вопрос - как заполнить массив matrix по массиву mass:
Думал сделать так:

Код:
int count = 0;
int number = 0;
int poss = 0;
int x = 0;
int y = 0;

for (int i = 0; i < mass.length; i++ )
		  {
			  count = mass[poss];
			  number = mass[poss+1];
		          poss = poss+2;

for (; x < matrix.length; x++) {
			        for (y = 0; y < count; y++) {    
			        	
			        	if (y>4)
			        	{
			        		x++;
			        		break;
			        	}
			        	else
			        		
			        		
			        	if (number == 0)
		 {

massb[y][x] = 0;
 	break;
			        }			        

			        	else
			        		
		 if (number == 1)
		 {

		massb[y][x] = 1;	
			        }
}
}
}
Но выбрасывает с этой ошибкой:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsExce ption: 4

Надеюсь на помощь
Hayaname вне форума Ответить с цитированием
Старый 28.12.2012, 20:27   #2
adeni
 
Регистрация: 28.12.2012
Сообщений: 3
По умолчанию

Вылетает прога на внешнем цикле - i бежит медленнее, чем poss, который и используется, как индекс для mass. Первый цикл нужно заменить, например, так
Код:
for (; poss < mass.length; )
adeni вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создать двумерный массив, заполнить случайными числами, сохранить в файл buba Паскаль, Turbo Pascal, PascalABC.NET 7 17.03.2015 20:08
Заполнить двумерный массив, размерностью 7х7, случайными не повторяющимися числами. Татьана Паскаль, Turbo Pascal, PascalABC.NET 3 20.10.2011 14:37
Заполнить массив случайными числами. Fender92 Паскаль, Turbo Pascal, PascalABC.NET 4 19.03.2011 17:05
Как заполнить двумерный массив случайными числами? SkuLLL Помощь студентам 1 14.12.2010 17:04
Заполнить массив случайными числами forumu Общие вопросы Delphi 13 03.12.2007 22:11