нужно решить задачу с заполнением массива c++

Помогите решить задачу, только изучаю c++ Заполнить произвольный массив размером N x N (N<10) по следующему правилу: 10000 00001 10000 00001 10000

Вот как я попробовал решить задачу, но это неверный код

const int n = 5;
   const int m = 5;
   int i, j;
   int a[n][m];
   int p = 0;
   
   for (i = 0; i < n; i++) 
   {
       for (j = 0; j < m; j++)
       {
           
           if ((j = 0) and (p = 0))
           {
               a[i][j] = 1;
               p = 1;
           }
           else if ((j = m- 1) and (p = 1))
           {
               a[i][j] = 1;
               p = 0;
           }
           else
           {
               a[i][j] = 0;
           }
           cout << " " << a[i][j];
       }
       cout << endl;
   }

Ответы (3 шт):

Автор решения: Harry

У вас в коде присваивание вместо сравнений. Кроме того, дополнительная переменная не нужна - просто смотрим, делится ли номер строки на 2 (четна - нечетна):

const int n = 5;
const int m = 5;
int i, j;
int a[n][m];

for (i = 0; i < n; i++)
{
    for (j = 0; j < m; j++)
    {
        if ((j == 0) and (i%2))
        {
            a[i][j] = 1;
        }
        else if ((j == m-1) and (i%2==0))
        {
            a[i][j] = 1;
        }
        else
        {
            a[i][j] = 0;
        }
        cout << " " << a[i][j];
    }
    cout << endl;
}
→ Ссылка
Автор решения: AR Hovsepyan

Я бы сделал быстрее _ без вложенного цикла и условий:

const size_t n = 5,  m = 5;    
int a[n][m] = { 0 };
/*int* p = a[0];
for (size_t i = 0; i < n; i++)
{
   *p = 1;
    p += 2* m * (i & 1);
    *(p - 1) = 1;
}*/

Точнее, как правильно заметил Harry:

for (int i = 0; i < n; ++i)
    a[i][(i % 2) * (m - 1)] = 1;
→ Ссылка
Автор решения: Furious_pawn
 const int n = 5;
 const int m = 5;
 const int w = 6;
 char a[n][w];
 int p = 0;
 int q = 1;

 for(int i = 0; i < n; i++){
       for(int j = 0; j < m; j++) {
         a[i][j] = '0';
         cout  << a[i][j];
      }
      cout  << " ";
  }


 for (int i = 0; i < n; i++)
 {
      if(q%2) a[i][4] = '1';
      else a[i][0] = '1';
      q++;
      cout << endl;
 }

 for(int i = 0; i < n; i++){
     for(int j = 0; j < m; j++) {
         cout  << a[i][j];
      }
      cout  << " ";
  }
   cout << endl;
→ Ссылка