Suma wierszy z tablicy. C++

0

Witam serdecznie. Mam mały problem. Otóż nie wiem jak zrobić aby program nie sumował wszystkich wierszy po kolei tylko żeby wyświetlił sumę każdego z nich osobno. Poniżej podaję kod.

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

using namespace std;

int tab[10][5];
int i,j;
int suma = 0;
int main()

{
    srand(time(NULL));
    for(i=0;i<10;i++)
        for(j=0;j<5;j++)
    tab[i][j] = (rand()% 20);

        for(i=0;i<10;i++)
    {
        for(j=0;j<5;j++)
            cout <<">"<< tab[i][j] <<'\t';
        cout <<endl;
    }
        cout << '\n';
        for(i=0;i<10;i++)
    {
        for(j=0;j<5;j++)
        suma += tab[i][j];
        cout <<" "<<suma<< endl;
    }
    return 0;
}

Mógłbym wypisać.

     {
        for(j=0;j<5;j++)
        suma += tab[0][j];
        cout <<" "<<suma<< endl;
    }

bez pierwszej pętli i powielać ten kod, ale przecież nie o to chodzi. Pytanie moje. Jak to ładnie zapętlić aby wyświetlało mi kolejno 10 sum?

2

Po pierwsze wcięcia, w podanym kodzie jest to tragedia, zrozumienie tak prostego kodu zajmuje bardzo dużo czasu, właśnie ze względu na brak jakiejkolwiek konsekwencji...

Po drugie, ta sama pętla wykonywana jest 2 razy.

    for(i=0;i<10;i++)
    {
        for(j=0;j<5;j++)

Dało się to lepiej rozwiązać.

Po trzecie, wcięcia.

I w końcu odpowiedź na pytanie, może po wyświetleniu wyniku wyzeruj jego wartość? Albo jeszcze lepiej, wyzeruj nim zaczniesz sumować :) (przed pętlą for(j=0;j<5;j++))

2

Np tak:

#include <iostream>
#include <iomanip>
#include <ctime>
#include <cstdlib>
using namespace std;
 
int main()
  {
   srand(time(0));
   int tab[10][5];
   for(int y=0;y<10;++y) for(int x=0;x<5;++x) tab[y][x]=rand()%20;
   for(int y=0;y<10;++y)
     {
      int sum=0;
      for(int x=0;x<5;sum+=tab[y][x++]) cout<<setw(3)<<tab[y][x];
      cout<<" :"<<setw(4)<<sum<<endl;
     }
   return 0;
  }

http://ideone.com/He1yyl

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