Другие языки программирования и технологии

как решить? Найти сумму элементов прямоугольной матрицы X(n,m), находящихся по периметру этой матрицы. язык: С++

>Напишите те кто-нибудь все теги
А разве в языке С++ есть теги?

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
setlocale(LC_ALL, "Russian");
srand(static_cast <unsigned> (time(NULL)));
int n = rand() % 15 + 2;
int m = rand() % 9 + 2;
cout << "Дана матрица X(" << n << "," << m << "):" << endl;
int ** X = new int * [ n ];
for (int i = 0; i < n; i++)
{
X[ i ] = new int[ m ];
for (int j = 0; j < m; j++)
{
X[ i ][ j ] = rand() % 199 - 99;
cout << setw(4) << X[ i ][ j ];
}
cout << endl;
}
int s = 0;
for (int k = 0; k < n + m - 2; k++)
if (k < m)
s += X[0][k] + X[n - 1][k];
else
s += X[k - m + 1][0] + X[k - m + 1][m - 1];
cout << "Сумма элементов периметра: " << s;
cin.get();
for (int i = 0; i < n; i++)
delete [ ] X[ i ];
delete [ ] X;
return 0;
}

P.S. Попробуйте научиться пользоваться поиском, возможно вам это понравится:
Геннадий Демещенко
Геннадий Демещенко
51 590
Лучший ответ
например так (чтоб не перетрахивать весь массив)
summ=0;
for(int i=0; i < n ; i++ ){ summ+=a [ i ][ 0 ];summ+=a [ i ] [ m-1];} // по двум краям
for(int i=1; i < m-2 ; i++ ){ summ+=a [ 0 ][ i ];summ+=a [ n-1 ] [ i ];} // по двум другим краям кроме уголков

------------
А реализаций плюсов со всеми версиями библиотек столько что все теги лень описывать
копай свою версию
summ=0;
for(int i=0; i < n ; i++ )
for (int j=0; j < m ; j++) if(i==0)||(j == 0)||(i==n-1)||(j==m-1) summ+=a [ i ];

Похожие вопросы