Suma wierszy z tablicy. C++

Suma wierszy z tablicy. C++
EL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1
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.

Kopiuj
 
#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ć.

Kopiuj
     {
        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?

Zellus
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 474
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.

Kopiuj
    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++))

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
2

Np tak:

Kopiuj
#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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.