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

przenoszenie tablicy pomiędzy funkcjami

Ostatnio zmodyfikowano 2011-11-03 19:38
Autor Wiadomość
danielwilam
Temat założony przez niniejszego użytkownika
przenoszenie tablicy pomiędzy funkcjami
» 2011-11-03 14:59:57
Witam,
mam problem z przekazaniem tablicy dwu wymiarowej pomiędzy dwiema funkcjami.

plik main.cpp
C/C++
#include <cstdlib>
#include <iostream>
#include "macierz.hpp"

using namespace std;

int main( int argc, char * argv[] )
{
    int ax, ay, bx, by;
    cin >> ax;
    cin >> ay;
    cin >> bx;
    cin >> by;
    macierza( ax, ay );
    macierzb( bx, by );
    dodajmacierz( macierza( ax, ay ), macierzb( bx, by ), ax, by );
    system( "PAUSE" );
    return EXIT_SUCCESS;
}

plik macierz.cpp
C/C++
#include "macierz.hpp"

int macierza( int ax, int ay )
{
    int A[ ax ][ ay ];
   
    for( int w = 1; w <= ax; w++ )
    {
        for( int k = 1; k <= ay; k++ )
        {
            std::cout << "A[" << w << "." << k << "] = ";
            std::cin >> A[ w ][ k ];
        }
    }
    std::cout << "\n";
   
    return A[ ax ][ ay ];
}

int macierzb( int bx, int by )
{
    int B[ bx ][ by ];
   
    for( int w = 1; w <= bx; w++ )
    {
        for( int k = 1; k <= by; k++ )
        {
            std::cout << "B[" << w << "." << k << "] = ";
            std::cin >> B[ w ][ k ];
        }
    }
    std::cout << "\n";
   
    return B[ bx ][ by ];
}

int dodajmacierz( int A, int B, int ax, int by )
{
    int C[ ax ][ by ];
    for( int i = 1; i <= ax; i++ )
    {
        for( int j = 1; j <= by; j++ )
        {
            C[ i ][ j ] = A[ i ][ j ] + B[ i ][ j ];
        }
    }
   
    for( int i = 1; i <= ax; i++ )
    {
        std::cout << "\n";
        for( int j = 1; j <= by; j++ )
             std::cout << " " << C[ i ][ j ];
       
    }
    std::cout << "\n";
    return C[ ax ][ by ];
}

plik macierz.hpp
C/C++
#ifndef macierz_hpp
#define macierz_hpp
#include <iostream>
#include <string>

int macierza( int ax, int ay );
int macierzb( int bx, int by );
int dodajmacierz( int A, int B, int ax, int by );

#endif

błąd w 44 linijce kodu w pliku macierz.cpp
P-43283
Drraven
» 2011-11-03 15:53:52
czyli w której
?:D
P-43287
pekfos
» 2011-11-03 17:31:22
To powiedz jeszcze jaki błąd.

//edit:
44. to ta:
C/C++
C[ i ][ j ] = A[ i ][ j ] + B[ i ][ j ];

//edit2:

C/C++
int A[ ax ][ ay ];

Jak tak chcesz się bawić to użyj dynamicznej alokacji bo to jest niedozwolone.
P-43293
akwes
» 2011-11-03 19:38:30
C/C++
// oj tam oj tam
const int ax = 30;
const int ay = 60;
int A[ ax ][ ay ];

Oczywiście żartuje :P Vektor vektorów albo dynamiczna tablica ( czyli to samo w sumie )
P-43302
« 1 »
  Strona 1 z 1