Sumowanie przekątnych tablicy - wyłączenie środkowego

0

Witam!

Potrzebuję zsumować elementy przekątnych tablicy 2-wymiarowej. Udało mi się napisać skrypt zliczający owe elementy z obu stron (od lewej do prawej oraz od prawej do lewej).
Z czym mam teraz problem: w przypadku tablicy parzystej, środkowy element nie występuje - ok, ale w przypadku tablicy nieparzystej, np. 3x3 występuje środkowy element którego nie chcę dodawać przy drugim zliczaniu.

Np. mam taką tablicę

1   2   3
1   2   3
1   2   3

Zliczając od lewej do prawej, wychodzi 6, natomiast zliczając od prawej do lewej, chcę pominąć element środkowy, czyli zamiast 6 ma wyjść 4. Jak to zrobić?

Mój obecny kod:

#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

int Liczenie( int RandomCount ) {
	
	int **tab;
	int SumaPrzekatnejRL = 0,
		SumaPrzekatnejLR = 0;
		
	srand(time(0));

	tab = new int *[RandomCount];

	for ( int i = 0; i < RandomCount; i++ )
		tab[i] = new int[RandomCount];

	for ( int i = 0; i < RandomCount; i++ ) {
		for ( int j = 0; j < RandomCount; j++ ) {
			tab[i][j] = rand() % 90 + 10;
		}
	}

	for ( int i = 0; i < RandomCount; i++ ) {
		for ( int j = 0; j < RandomCount; j++ ) {
			cout << tab[i][j] << " ";
		}
		cout << endl;
	}
	cout << endl;
  
	for( int i=0; i < RandomCount; i++ ) {                
		SumaPrzekatnejRL = SumaPrzekatnejRL + tab[i][i];
	} 
    
	for( int i=0; i < RandomCount; i++ ) {
       SumaPrzekatnejLR=SumaPrzekatnejLR+tab[i][(RandomCount-1)-i];
	}
	
	cout << "Suma od lewej do prawej: " << SumaPrzekatnejRL << endl;
	cout << "Suma od prawej do lewej: " << SumaPrzekatnejLR << endl << endl;
}

int main() {
	int RandomCount;

	cout << "#####################################################" << endl;
	cout << "##  " << "Sumowanie po przekatnej w tablicy 2-wymiarowej" << " ##" << endl;
	cout << "#####################################################" << endl;
	cout << endl << "Wprowadz rozmiar tablicy: " << endl << "==> ";
	cin >> RandomCount;
	Liczenie( RandomCount );
	
	system("pause");
}
0
  1. Nie rozumiesz inkrementacji: http://4programmers.net/Forum/1101404
  2. Masz bezsensowne nazewnictwo
  3. Niech się liczy drugi raz, po zakończeniu odejmij jego wartość o ile trzeba.
  4. Podziel to na sensowne funkcje.

0 użytkowników online, w tym zalogowanych: 0, gości: 0