Извиняюсь, написал не проверив и без компилятора.
| Код | #include <iostream.h> #include <conio.h>
void TryInsertInMax(double *max, const int SizeOfMax, double value) { for (int i = 0; i < SizeOfMax; ++i) { if (max[i] < value) { TryInsertInMax(max, SizeOfMax, max[i]); max[i] = value; return; } } }
void main() { clrscr(); const int N = 3; const int M = 3; /* double a[N][M] = { {7.3, 8.6, 6.4}, {5.1, 4.3, 2}, {5.6, -7.3, 5.6} }; */ /* double a[N][M] = { {4.3, 8.6, 6.4}, {5.1, 4.3, 2}, {5.6, -7.3, 5.6} }; */ /* double a[N][M] = { {4.3, 8.6, 6.4, 7.9}, {5.1, 4.3, 2, 3.4}, {5.6, -7.3, 5.6, 9.7} }; */ /* double a[N][M] = { {4.7, 8.6}, {5.1, 4.9} }; */ const int SizeOfMax = 3; double max[SizeOfMax]; int i; int j;
if (N * M < SizeOfMax) { cout << "Количество элементов матрицы 'a' меньше чем кол элем массива 'max'"; getch(); return; }
int k = 0; for (i = 0; i < N && k < SizeOfMax; ++i) for (j = 0 ; j < M && k < SizeOfMax; ++j) { max[k] = a[i][j]; ++k; }
--i; for (; i < N; ++i) { for (; j < M; ++j) { TryInsertInMax(max, SizeOfMax, a[i][j]); } j = 0; }
double proiz = 1.0;
for (i = 0; i < SizeOfMax - 1; ++i) { proiz *= max[i];
cout << max[i] << " * "; }
proiz *= max[i]; cout << max[i] << " = " << proiz;
getch(); }
|
Теперь должно работать. Не забудьте поменять N и M, если размерность не [3][3] |