Как можно найти произведение ненулевых элементов в 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];
}
