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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 29.05.2010, 22:09   #1
Юрий_91
Пользователь
 
Регистрация: 08.01.2010
Сообщений: 11
По умолчанию количество соседей у элемента матрицы

для решения задачи надо посчитать кол-во единичный соседей у элемента матрицы.
у меня есть 2 способа решения задачи, первый работает но не правильно, второй вообще не работает.
первый сделан с учетом угловых (крайних) элементов, если попробовать вывести V, то компилятор выводит не понятное значение(borland c 5.2).
Код:
void born(int a[80][80])
{ int i,j,v;
	v=0;
	for (i=0;i<n;i++)
    {for (j=0;j<m;j++)
	{
    if (a[i][j]==0)
    	{
    	if (j==0&&i==0)
    		{ 	if (a[i][j+1]==1)
         	v++;
         	if (a[i+1][j]==1)
         	v++;
         	if (a[i+1][j+1]==1)
         	v++;
            	if (v==3)
            	a[i][j]=1;
         }
    			if (i==0)
            	{ 	if (a[i][j+1]==1)
         			v++;
			         if (a[i+1][j]==1)
			         v++;
         			if (a[i][j-1]==1)
			         v++;
         			if (a[i+1][j-1]==1)
			         v++;
         			if (a[i+1][j+1]==1)
         			v++;
                 		if (v==3)
      			  		a[i][j]=1;
               }
               	if (j==0)
            		{ 	if (a[i][j+1]==1)
         				v++;
			         	if (a[i+1][j]==1)
			         	v++;
         				if (a[i-1][j+1]==1)
         				v++;
         				if (a[i-1][j]==1)
      					v++;
         				if (a[i+1][j+1]==1)
         				v++;
                     	if (v==3)
      						a[i][j]=1;
               	}
      else
      {  if (a[i-1][j]==1)
      	v++;
         if (a[i][j+1]==1)
         v++;
         if (a[i+1][j]==1)
         v++;
         if (a[i][j-1]==1)
         v++;
         if (a[i+1][j-1]==1)
         v++;
         if (a[i+1][j+1]==1)
         v++;
         if (a[i-1][j+1]==1)
         v++;
         if (a[i-1][j-1]==1)
         v++;
      if (v==3)
      a[i][j]=1;
      }
    }
	}
   }
}
второй:
Код:
void born()
{ int i,j,v=0,it,jt;
	for (i=0;i<n;i++)
   {for (j=0;j<m;j++)
    	if (a[i][j]==0)
      {
      it=i;
      jt=j;
      for (it=it-1;it<it+1;it++)
      	{for (jt=jt-1;jt<jt+1;jt++)
            	 if (a[it][jt]==1)
                v++;
       if (v==3)
       a[it][jt]=1;
       	}
       }
   }
}
подскажите поскорее пожайлуйста

Последний раз редактировалось Юрий_91; 29.05.2010 в 22:13.
Юрий_91 вне форума
Старый 30.05.2010, 00:07   #2
Юрий_91
Пользователь
 
Регистрация: 08.01.2010
Сообщений: 11
По умолчанию

ссылка на программу http://file.qip.ru/file/130435530/b1.../_2__LIFE.html

скажите может у меня алгоритм не правильный

что никто не знает как это делать?
понятно какие тут крутые программисты...

ответ хреновые

Последний раз редактировалось Stilet; 31.05.2010 в 09:28.
Юрий_91 вне форума
Старый 31.05.2010, 00:18   #3
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

Код:
int array[ 3 ][ 3 ];
for( int i = posx - 1, j = 0; j < 3; ++j )
   for( int z = posy - 1, x = 0; x < 3; ++x )
      if( z < 0 || z > sizeX || i < 0 || i > sizeY )
        array[ j ][ x ] = 0;
      else
        array[ j ][ x ] = matr[ i ][ z ];
array[ 1 ][ 1 ] = 0;
int oneCount = 0;
for( int i = 0; i < 3; ++i )
  for( int j = 0; j < 3; ++j )
    if( array[ i ][ j ] == 1 )
      oneCount++;
Разгребай, удачи, крутой программист И да, твой код почти такое же нечитаемое говнецо
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux

Последний раз редактировалось ozo; 31.05.2010 в 00:25.
ozo вне форума
Старый 31.05.2010, 02:44   #4
Юрий_91
Пользователь
 
Регистрация: 08.01.2010
Сообщений: 11
По умолчанию

не спорю с этим ><
Юрий_91 вне форума
Старый 31.05.2010, 09:29   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Оскорбление форумчан.
I'm learning to live...
Stilet вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
количество соседей у элемента матрицы Юрий_91 Помощь студентам 0 29.05.2010 19:29
Определить номера строки и столбца максимального элемента прямоугольной матрицы. GANGSTER21 Паскаль, Turbo Pascal, PascalABC.NET 12 20.04.2010 21:09
Нахождение минимального элемента матрицы переменной длины.паскаль. pif Помощь студентам 9 14.03.2010 01:07