2александр: интересная идея, но ресурсоемкая, как мне сдается. надо взять на вооружение. благодарствую! 
я соорудил конструкцию на циклах - 
 
#include <iostream> 
#include <stdlib.h> 
#include <time.h> 
#include <conio.h> 
using namespace std; 
 
int main(void) 
{ 
int tbl[100][100],n,m,s=0; 
cout << "enter number of rows\n"; 
cin >> n; 
cout << "enter number of columns\n"; 
cin >> m; 
cout << "matrix\n"; 
srand((unsigned)time(NULL)); 
for(int i=0;i< n;i++) 
{ 
for(int j=0;j< m;j++) 
{ 
tbl[ i][ j]=rand()% 21-10; 
cout << tbl[ i][ j] << " "; 
} 
cout << "\n"; 
} 
for(int i=0;i< n;i++) 
for(int j=0;j< m;j+=m< 2?1:m-1) 
s+=tbl[ i][ j]; 
for(int i=0;i< n && m >2;i+=n< 2?1:n-1) 
for(int j=1;j< m-1;j++) 
s+=tbl[ i][ j]; 
cout << "perimeter sum=" << s; 
getch(); 
return 0; 
} 
 
зы была б матрица квадратная - одним циклом можно было бы обойти весь периметр.
				
	Другие языки программирования и технологии
	
		
		
								
				
							
								
				
								
				
								
				
								
				
								
				
			
	
		
			Дан двумерный массив из NxM случайных элементов. Посчитать сумму периметра. С++
считаем рекурсивно! 
из суммы всех элементов массива вычитаем сумму элементов массива поменьше, получаемого выбрасыванием периметра.. . и так делее.. .
метод вычисления суммы элементов массива при этом будет вызываться рекурсивно.
вот так-то!
				
							из суммы всех элементов массива вычитаем сумму элементов массива поменьше, получаемого выбрасыванием периметра.. . и так делее.. .
метод вычисления суммы элементов массива при этом будет вызываться рекурсивно.
вот так-то!
Лось, вот тебе с помощью одного цикла: 
 
for(int j=0;j< n+m-2;j++)
if(j < n ) s+=tbl[ j][ 0]+tbl[ j ][ m-1];
else s+=tbl[ 0][ j-n+1]+tbl[ n-1 ][ j-n+1];
 
:)
				
							for(int j=0;j< n+m-2;j++)
if(j < n ) s+=tbl[ j][ 0]+tbl[ j ][ m-1];
else s+=tbl[ 0][ j-n+1]+tbl[ n-1 ][ j-n+1];
:)
Не нужна здесь рекурсия, так как сумму элементов массива придётся всего два раза вычислять: 
 
#include <conio.h>
#include <iostream>
#include <iomanip>
using namespace std;
 
int BorderSum(int**, int, int, int, int);
 
int main() {
setlocale (LC_ALL,"Russian");
int** a;
int n, m, i, j;
cout << "Введите кол-во строк: ";
cin >> n;
cout << "Введите кол-во столбцов: ";
cin >> m;
cout << "Заданный массив: " << endl;
srand(time(NULL));
a = new int* [ n ];
for (i = 0; i < n; i++) {
a[ i ] = new int[ m ];
for (j = 0; j < m; j++) {
a[ i ] [ j ] = rand() % 101 - 50;
cout << setw(4) << a[ i ] [ j ]; }
cout << endl; }
cout << "Сумма элементов периметра: "
<< BorderSum(a, n, m, 0, 0) - BorderSum(a, n, m, 1, 1)
<< endl;
getch();
for (i = 0; i < n; i++)
delete [] a[ i ];
delete [] a;
return 0; }
 
int BorderSum(int** a, int n, int m, int di, int dj) {
int s = 0;
if (n > 2 * di && m > 2 * dj)
for (int i = di; i < n - di; i++)
for (int j = dj; j < m - dj; j++)
s += a[ i ] [ j ];
return s; }
				
							#include <conio.h>
#include <iostream>
#include <iomanip>
using namespace std;
int BorderSum(int**, int, int, int, int);
int main() {
setlocale (LC_ALL,"Russian");
int** a;
int n, m, i, j;
cout << "Введите кол-во строк: ";
cin >> n;
cout << "Введите кол-во столбцов: ";
cin >> m;
cout << "Заданный массив: " << endl;
srand(time(NULL));
a = new int* [ n ];
for (i = 0; i < n; i++) {
a[ i ] = new int[ m ];
for (j = 0; j < m; j++) {
a[ i ] [ j ] = rand() % 101 - 50;
cout << setw(4) << a[ i ] [ j ]; }
cout << endl; }
cout << "Сумма элементов периметра: "
<< BorderSum(a, n, m, 0, 0) - BorderSum(a, n, m, 1, 1)
<< endl;
getch();
for (i = 0; i < n; i++)
delete [] a[ i ];
delete [] a;
return 0; }
int BorderSum(int** a, int n, int m, int di, int dj) {
int s = 0;
if (n > 2 * di && m > 2 * dj)
for (int i = di; i < n - di; i++)
for (int j = dj; j < m - dj; j++)
s += a[ i ] [ j ];
return s; }
Что такое массив? Что такое двумерный массив? Как обратиться к элементу массива? 
Какие элементы массива лежат на периметре? Как посчитать сумму элементов строки, столбца?
Как то примерно так нужно подходить к решению. Данную тему только к самостоятельному изучению.
				
							Какие элементы массива лежат на периметре? Как посчитать сумму элементов строки, столбца?
Как то примерно так нужно подходить к решению. Данную тему только к самостоятельному изучению.
Решается через трёхмерный дискредитив двуполярного циклического реполиума!
				
							Похожие вопросы
- дан двумерный массив С(3,4).Получите новый массив А путём увеличения всех элементов исходного массива на число С.
- Дан двумерный массив А [7,8], заполненный случайным образом. Заменить нечетные элементы массива на число 0 СРОЧНОО ГАЙСЫ
- обработка двумерных массивов (заменить по условию элементы на 0)
- Дан двумерный массив C(m,n). Найти произведение элементов, больших среднего значения. Помогите пожалуйста!!!
- Дан двумерный массив C(m,n). Найти произведение элементов, больших среднего значения. Помогите пожалуйста!!! На паскале
- Turbo Pascal. Дан двумерный массив. Все нули заменить максимальным элементом.
- Дан двумерный массив
- Дан двумерный массив.
- Дан двумерный массив целых чисел. Упорядочить прямую диагональ в порядке убывания.
- Помогите !!!С++Работа с одномерными и двумерными массивами. В каждой строке матрицы F(k, k) элемент. лежащий на главной
 
			 
						 
						