Автор Тема: С++ Помогите найти ошибку!  (Прочитано 3411 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sir. Andrey

  • Ветеран
  • *****
  • Сообщений: 1943
    • Просмотр профиля
С++ Помогите найти ошибку!
« : 20 Октября 2010, 13:45:09 »
Добрый вечер!!!
Помогите пожалуйста найти ошибку!!!
Вот сдесь идет зацикливание!!!
Не могу понять, почему?
void CPlot::Zadacha()
{   
    int i,j;
    int p,q,m=2,hod,b,k,e;
    p=1; q=0;
    hod=2;
    a[0][0]=2; a[0][1]=2; a[1][0]=2; a[1][1]=2;
    while( p==1 ){
            b++;
            for( i=0;i<n;i++ ){
                for( j=0;j<n;j++ ){printf("sdr");
                    if( a[i][j]==hod ){
                        //Право
                        if( j<n-1 ){
                            for( k=0;k<n;k++ ){ if( a[k][j+1]==0 && a[k][j]==hod ) q++; }
                            //printf("%d",q);
                            if( q==m ){
                                if( a[k][j+1]==0 && a[k][j]==hod ) a[k][j+1]=hod+1;
                            }
                        }
                        q=0;
                        //Лево
                        if( j>0 ){
                            for( k=0;k<n;k++ ){ if( a[k][j-1]==0 && a[k][j]==hod ) q++;  }
                            if( q==m ){
                                if( a[k][j-1]==0 && a[k][j]==hod ) a[k][j-1]=hod+1;
                            }
                        }
                        q=0;
                        //Низ
                        if( i<n-1){
                            for( e=0;e<n;e++ ){ if( a[i+1][e]==0 && a[i][e]==hod ) q++; }
                            if( q==m ){
                                if( a[i+1][e]==0 && a[i][e]==hod ) a[i+1][e]=hod+1;
                            }
                        }
                        q=0;
                        //Верх
                        if( i>0 ){
                            for( e=0;e<n;e++ ){ if( a[i-1][e]==0 && a[i][e]==hod ) q++; }
                            if( q==m ){
                                if( a[i-1][e]==0 && a[i][e]==hod ) a[i-1][e]=hod+1;
                            }
                        }
                        q=0;
                    }
                }
            }

    hod++;
    if( b>n*n ) break;
    }
}

Оффлайн sir. Andrey

  • Ветеран
  • *****
  • Сообщений: 1943
    • Просмотр профиля
Re: С++ Помогите найти ошибку!
« Ответ #1 : 21 Октября 2010, 12:30:27 »
Тема CLOSE!!!