Как можно найти произведение ненулевых элементов в C++?

На фотографии обведено

На фотографии ручкой обведено

Вот пример кода :

  #include <iostream>
  #include<stdio.h>
  #include <windows.h>
  #define i0 6
 #define j0 5
  using namespace std;
 int main()
{
float a[i0][j0];
float b[j0];
int i, j;
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
cout << "\nВведіть елементи масиву А\n";
 for (i = 0;i<i0;i++)
      for (j = 0;j<j0;j++)
    {
         printf(" Введіть           A[%i,%i]=  \n", i, j);
         cin >> a[i][j];
      }
  for (i = 0;i<i0;i++)
{
      b[i] = 1.0;
    for (j = 0;j<j0;j++)
    {
         if (a[i][j] != 0) b[i]          = b[i] * a[i][j];
       }
    printf("b[%i]=%f\n", i,                 b[i]);
}
return 1;
 }

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

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

Диагонали обходятся одним циклом, не вложенным...

double p = 1;
for(int i = 0; i < 6; ++i)
{
    if (a[i][i] != 0) p *= a[i][i];
    if (a[i][5-i] != 0) p *= a[i][5-i];
}
→ Ссылка