Tablica 2 wymiarowa.

0

Witam. Mam problem z napisaniem pętli zliczającej mi sumę elementów tablicy 2 wymiarowej po przekątnej np:

1 0 0 0
0 2 0 0
0 0 2 0
0 0 0 3
Suma=powinna być 8. O to mi chodzi.

Jak zliczyć te jedynki?
Oto co napisałem do tej pory.


#include <iostream>
#include <conio.h>
#define X 4
#define Y 4
using namespace std;

int main(){
int tab[X][Y], ix, iy, suma=0;

for(ix=0; ix<X; ix++){
for(iy=0; iy<Y; iy++){
tab[ix][iy] = (rand() % 2);
gotoxy(ix*4+1,iy+4);
}}
for(ix=0; ix<X; ix++){
for(iy=0; iy<Y; iy++){
cout << tab[ix][iy] ;
gotoxy(ix*4+1,iy+4);
}}
//TUTAJ POWINNA MI ZLICZAC SUME WARTOSCI ELEMENTOW PO PRZEKATNEJ
for(ix=0; ix<X; ix++){
for(iy=0; iy<Y; iy++){
suma = suma + tab[ix][ix];
}
cout<<endl<<"Suma: "<<suma<<" ";

getchar();
}

A tu Screen co mi za głupoty oblicza.
www.diunax.strefa.pl

0

for(ix=0; ix<X; ix++){
  for(iy=0; iy<Y; iy++){
    suma = suma + tab[ix][ix];
  }
}

Po co Ci dwa fory skoro nawet nie wykorzystujesz iy?

0

for(ix=0; ix<=X; ix++){
              suma = suma + tab[ix][ix];
 }

po czymś takim też mi źle zlicza.

0

No nie dziwie się, spróbuj tak:

for(ix=0; ix < X; ix++)  

Dając ix <= X od 0 sumujesz sześć wartości, a nie 5, bo 0,1,2,3,4,5.

0

Jak zamienie:


for(ix=0; ix<=X; ix++){
    suma = suma + tab[ix][ix];
}

Na


for(ix=0; ix<X; ix++){
    suma = suma + tab[ix][ix];
}

To z tablicy:
2 0 4 2
0 0 3 0
1 3 1 2
2 1 4 0
otrzymuje wynik = 5 więc źle prawda ?

0
    for(int i = 0; i < 4; i++)
    {
        suma += tab[i][i];
    } 

To u mnie dla:

    int tab[4][4] = {
        {3, 0, 6, 0},
        {1, 3, 0, 1},
        {0, 0, 8, 0},
        {0, 8, 0, 1}
    }; 

Daje suma = 15.

0

Niemożliwe..

Mój kod tak na szybko:

#include <iostream>
#define X 4
#define Y 4
using namespace std;

int main(){
  int tablica[X][Y];
  int suma = 0;
  for (int i = 0; i < X; i++){
    for (int j = 0; j < Y; j++){
      cin >> tablica[i][j];
    }
  }
  for (int i = 0; i < X; i++){
    suma = suma + tablica[i][i];
  }
  cout << endl;
  cout << "Suma: " << suma << endl;
 return 0;
}


2 0 4 2
0 0 3 0
1 3 1 2
2 1 4 0

Suma: 3

Musi działać, nie ma wyjścia

0

Przyznam Ci racje działa.
Zrobiłem tak jak Ty, dla innych wartości wpisanych na sztywno i jest okej.
Czy problem stwarzała by funkcja rand losująca losowe liczby?

Ale w każdym bądź razi dziękuję Ci, za pomoc.

0

Bardziej zastanawia mnie po co w ogóle ta f-cja gotoxy. W jakim celu jej używasz?

Wiem do czego służy, ale po co ona tutaj?

PS. Jak się odpisuje w tych komentarzach do postów?

0

Żebym miał wizualne rozeznanie jak wygląda tablica

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