lost90 Temat założony przez niniejszego użytkownika |
[C++] error: invalid types 'double[int]' for array subscript » 2014-03-23 10:25:39 Witam!
Po pierwsze przyznam się i przeproszę: jestem kiepski w programowaniu! Ale co zrobić... muszę napisać program i napisałem na razie coś takiego (program nie jest skończony, ale chciałem sprawdzić czy to co napisałem robi to co chciałbym żeby robiło):
#include <iostream> using namespace std;
double z0[ 25 ] = { 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0 }; double z1[ 25 ] = { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }; double z2[ 25 ] = { 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0 }; double z3[ 25 ] = { 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 }; double macierzW[ 25 ][ 25 ], macierzSNG[ 25 ]; int i, j;
double wywolywaniemacierzy( double * macierz ) { for( i = 0; i < 25; i++ ) { if( macierz[ i ] == 1 ) { std::cout << "* "; } else { std::cout << " "; } if( i == 4 ) { std::cout << " " << endl; } if( i == 9 ) { std::cout << " " << endl; } if( i == 14 ) { std::cout << " " << endl; } if( i == 19 ) { std::cout << " " << endl; } if( i == 24 ) { std::cout << " " << endl; } } }
double W( double * macierz, double * macierzT ) { double macierzW[ 25 ]; for( j = 0; j < 25; j++ ) { for( i = 0; i < 25; i++ ) { macierzW[ i ][ j ] = 0.04 * macierz[ i ] * macierzT[ j ] + 0.04 * macierz[ i + 1 ] * macierzT[ j + 1 ]; } } }
double sgn( double * macierz ) { double macierzsgn[ 25 ]; for( i = 0; i < 25; i++ ) { if( macierz[ i ] < 0 ) { macierzsgn[ i ] =- 1; } else { macierzsgn[ i ] = 1; } } }
double SGN( double * macierz, double * macierz2 ) { double macierzSGN[ 25 ]; for( j = 0; j < 25; j++ ) { for( i = 0; i < 25; i++ ) { macierzSGN[ j ] = macierzSGN[ j ] + macierz[ i ][ j ] * macierz2[ i ]; } } }
int main() { wywolywaniemacierzy( z0 ); W( z0, z0 ); for( int j = 0; j < 25; j++ ) { for( int i = 0; i < 25; i++ ) { std::cout << macierzW[ i ][ j ]; } std::cout << " " << endl; } return 0; }
Problem znajduje się w funkcji double W(double *macierz, double *macierzT) i double SGN(double *macierz, double *macierz2), w obu przypadkach chodzi o to samo.
53 17 [Error] invalid types 'double[int]' for array subscript
domyślam się, że coś spieprzyłem z tablicą dwuwymiarową, ale po kilku godzinach nie mam pojęcia co.
Mam nadzieję, że ktoś życzliwy mi pomoże. Z góry dziękuję za odpowiedź.
w czasie naprawiania błędów zadeklarowałem tablicę globalnie i zapomniałem usunąć lokalną deklaracje, a ta druga była deklarowana jako jednowymiarowa. Głupie niedopatrzenie!
Dzięki wielkie za odpowiedź.
|