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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2010, 19:29   #1
Юрий_91
Пользователь
 
Регистрация: 08.01.2010
Сообщений: 11
По умолчанию количество соседей у элемента матрицы

для решения задачи надо посчитать кол-во единичный соседей у элемента матрицы.
у меня есть 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 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить номера строки и столбца максимального элемента прямоугольной матрицы. GANGSTER21 Паскаль, Turbo Pascal, PascalABC.NET 12 20.04.2010 21:09
Нахождение минимального элемента матрицы переменной длины.паскаль. pif Помощь студентам 9 14.03.2010 01:07
Вычислить и запомнить количество отрицательных элементов каждого столбца для матрицы A(10,10) , B (15,20) bitmania Помощь студентам 3 15.10.2008 01:06