Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

tablica sumy kolumn

Ostatnio zmodyfikowano 2016-03-08 20:34
Autor Wiadomość
WhitenNerdy
Temat założony przez niniejszego użytkownika
tablica sumy kolumn
» 2016-03-08 13:15:31
Program działa w połowie dobrze ale gdzieś jest błąd, którego nie widze.

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

void wypelnij( int ** tab, int n )
{
    for( int i = 0; i < n; i++ )
    for( int j = 0; j < n; j++ )
         tab[ i ][ j ] = rand() % 10;
   
}

void wypisz( int ** tab, int n )
{
    for( int i = 0; i < n; i++ )
    {
        for( int j = 0; j < n; j++ )
        {
            cout << tab[ i ][ j ] << " ";
        }
        cout << endl;
    }
}

void oblicz( int ** tab, int n, int * t )
{
   
    for( int k = 0; k < n; k++ )
    {
        for( int i = 0; i < n; i++ )
        {
            for( int j = 0; j < n; j++ )
            {
                if( j == k )
                {
                    t[ k ] += tab[ i ][ j ];
                }
            }
        }
    }
   
    for( int i = 0; i < n; i++ )
    {
        cout << "\nSuma kolumny nr " << i + 1 << " = " << t[ i ];
    }
}

int main()
{
    srand( time( NULL ) );
    int n = 4;
   
    int * t = new int[ n ];
   
    int ** tab = new int *[ n ];
    for( int i = 0; i < n; i++ )
         tab[ i ] = new int[ n ];
   
    wypelnij( tab, n );
    wypisz( tab, n );
    oblicz( tab, n, t );
}
P-145715
mateczek
» 2016-03-08 13:29:10
C/C++
void oblicz( int ** tab, int n, int * t )
{
   
    for( int i = 0; i < n; i++ ) { // poprawione "i" inexuje kolumny
        t[ i ] = 0; //inicjalizacja sumy na 90% tu masz problem. Ale daję krótszy kod
        for( int j = 0; j < n; j++ ) { //"j" indeksuje elementy w kolumnie
            t[ i ] += tab[ j ][ i ];
        }
    }
   
   
    for( int i = 0; i < n; i++ )
    {
        cout << "\nSuma kolumny nr " << i + 1 << " = " << t[ i ];
    }
}
P-145717
michal11
» 2016-03-08 15:46:23
Ale masz piękne wycieki pamięci.
P-145728
WhitenNerdy
Temat założony przez niniejszego użytkownika
» 2016-03-08 20:34:45
Miałeś racje, w main() zeruje elementy t i kod działa

C/C++
for( int i = 0; i < n; i++ )
     t[ i ] = 0;[ / i ]
P-145755
« 1 »
  Strona 1 z 1