Консультация № 174964
07.12.2009, 02:16
0.00 руб.
0 1 1
Вычислить максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы.
Оформить в виде функции пользователя.

___________________________________________
Программы должна быть написана на C++ и работать на Microsoft Visual C++ 6.0
Прошу написать как можно более доступным языком и закоментировать каждую строчку по максимуму. (ну почти каждую)
Еще ОЧЕНЬ ОЧЕНЬ нужна БлокСхема (пожалуйста хотя бы ручкой на бумаге набросайте как она должна выглядеть) (ну или кистью в пэйнте)
Плииз очень нужно.

Обсуждение

давно
Профессор
230118
3054
07.12.2009, 03:22
общий
это ответ
Здравствуйте, Иванов Евгений Витальевич.
Код в приложении. Картинку блок-схемы могу выслать на личную почту.

Приложение:


#include <stdlib.h>
#include <iostream>
int const n=3;
using namespace std;

void main()
{
int i,j,i1,i2,k,A[n][n],sum_diag, max_sum_diag;


max_sum_diag=INT_MIN; //практически минус бесконечность

cout<<"Enter "<<n*n<<" elements..."<<endl<<endl;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>A[i][j]; // ввод матрицы

for(i=0;i<n;i++) //в матрице n-1 диагоналей выше главной.
{
sum_diag=0;
for(j=0;j<i+1;j++)
{
sum_diag+=A[j][j+n-1-i];//Разница между столбцом и строкой меняется от n-1 до 1
// вычисляется сумма текущей диагонали.
cout<<"A["<<j<<" "<<j+n-1-i<<"]";//выводится, какие элементы считаются
}
if(sum_diag>max_sum_diag)//если текущая сумма больше найденного максимума, заменить
max_sum_diag=sum_diag;
cout<<endl;

}
for(i=0;i<n-1;i++) //в матрице n-1 диагоналей Ниже главной.
{
sum_diag=0;
for(j=0;j<i+1;j++)
{
sum_diag+=A[j+n-1-i][j];//Разница между столбцом и строкой меняется от n-1 до 1
cout<<"A["<<j+n-1-i<<" "<<j<<"]";//выводится, какие элементы считаются
}
if(sum_diag>max_sum_diag)
max_sum_diag=sum_diag;
cout<<endl;

}
cout<< max_sum_diag<<endl;
}
Форма ответа