В квадратной матрице вычислить сумму элементов, расположенных на одной горизонтали - М и вертикали - К с заданным элементом матрицы А[М,К], и полученное значение присвоить всем элементам матрицы, не участвовавшим в суммировании.
Так я ее реализовал на языке С++
Мне кажется, что ввод массива я сделал неграмотно. Может быть можно как по-другому вводить массив без тех ограничений?
Код:
//#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <iomanip>
#define N 100 //
using namespace std;
int main()
{
int A[N][N],n,m,k,sum=0;
setlocale (0, "");
cout << "Размер матрицы; N: ";
cin >> n;
if (n>N||n==0)
{
cout << "недопустимый размер матрицы;";
return 0;
}
cout << "введите матрицу;" << endl;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
cout << "A[" << i << "][" << j << "] = ";
cin >> A[i][j];
}
}
cout << "исходная матрица;" << endl;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
cout<<setw(5);
cout << A[i][j];
}
cout<<endl;
}
do
{
cout << "введите заданный элемент; M(1.."<< n <<" ): ";
cin >> m;
}
while(!(m>=1&&m<=n));
{
do
{
cout << "введите заданный элемент; K(1.."<< n <<" ): ";
cin >> k;
}
while(!(k>=1&&k<=n));
}
cout <<"координата строки; M = " << m << endl;
cout <<"координата столбца; K = " << k << endl;
m--;k--;
for(int i=0;i<n;i++)
{
sum=sum+A[m][i];
sum=sum+A[i][k];
}
sum=sum-A[m][k];
cout << "Сумма; = " << sum << endl;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(i!=m&&j!=k)
A[i][j]=sum;
}
}
cout << "новая матрица" << endl;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
cout<<setw(5);
cout << A[i][j];
}
cout << endl;
}
system("pause");
return 0;
}