[C++] error: cannot convert 'double (*)[25]' to 'double*' for argument '1' to 'double SGN(double*, double*)
Ostatnio zmodyfikowano 2014-03-24 09:20
lost90 Temat założony przez niniejszego użytkownika |
[C++] error: cannot convert 'double (*)[25]' to 'double*' for argument '1' to 'double SGN(double*, double*) » 2014-03-24 07:27:15 Jestem już pod koniec pisania programu. Zostały mi do poprawienia 2 rzeczy i nie mam pomysłu o co może chodzić (być może dlatego, że moja wiedza o c++ jest średniej jakości).
#include <iostream> using namespace std;
double z0[ 25 ] = { - 1, - 1, - 1, - 1, - 1, - 1, 1, 1, 1, - 1, - 1, 1, - 1, 1, - 1, - 1, 1, 1, 1, - 1, - 1, - 1, - 1, - 1, - 1 }; double macierzW[ 25 ][ 25 ]; double macierzsgn[ 25 ], macierzSGN[ 25 ]; int i, j, k;
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 ) { 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 * macierzW, double * macierz ) { for( k = 0; k < 25; k++ ) { macierzSGN[ k ] = 0; } for( i = 0; i < 25; i++ ) { for( j = 0; j < 25; j++ ) { macierzSGN[ i ] += macierzW[ i ][ j ] * macierz[ j ]; } } } double sgn( double * macierz ) { for( i = 0; i < 25; i++ ) { if( macierz[ i ] < 0 ) { macierzsgn[ i ] =- 1; } else { macierzsgn[ i ] = 1; } } }
int main() { wywolywaniemacierzy( z0 ); W( z0, z0 ); SGN( macierzW, z0 ); sgn( macierzSGN ); for( i = 0; i < 25; i++ ) { std::cout << macierzsgn[ i ]; } return 0; }
efekt jest taki, że wyskakują takie błędy:
65 32 [Error] invalid types 'double[int]' for array subscript
92 17 [Error] cannot convert 'double (*)[25]' to 'double*' for argument '1' to 'double SGN(double*, double*)'
pierwszy błąd dotyczy funkcji double SGN(double *macierzW,double *macierz), dotyczy tablicy dwuwymiarowej, ale nie widzę gdzie jest błąd. Drugiego błędu nawet za bardzo nie rozumiem, a program wskazuje go przy wywoływaniu funkcji SGN...
z góry dziękuję za odpowiedź
|
|
DejaVu |
» 2014-03-24 09:20:30 |
|
« 1 » |