Funkcja zdefiniowana jako
void wczytaj( float tab[2][3], int[2][3] ) potrzebuje dwóch argumentów, a ty podajesz jeden:
Zgaduję że drugi argument jest niezamierzony, więc możesz zmienić sygnaturę funkcji na
i problem powinien zniknąć.
Z tym, że błędów jest więcej:
- w sygnaturze funkcji
void wypisz(float wartosc[2][3[,int[2][3]) oprócz niepotrzebnego drugiego argumentu jest jeszcze literówka.
-
wczytaj[2][3] to nie cała tablica tylko pojedyncza zmienna typu
float, w dodatku leżąca poza tablicą - używanie jej może spowodować naruszenie ochrony pamięci (segfault). Powinieneś wywołać funkcje w ten sposób:
Dodatkowo kod w paru miejscach choć jest poprawny językowo, to chyba robi nie to co chcesz.
Kod: Zaznacz cały
for (int i=1;i<2;i++)
{
for (int j=1;j<3;j++)
{
tab[1][1]=1;
tab[1][2]=3;
}
}
Ta pętla jest bez sensu, bo ma dwa przebiegi i w drugim tylko powtarza to co zrobiła w pierwszym. Jeśli chcesz przypisać każdej komórce dokładnie jedną wartość, zrób tak:
Kod: Zaznacz cały
for( int i = 0; i < 2; ++i )
for( int j = 0; j < 3; ++j )
{
tab[i][j] = <wartość>;
}
- Ta pętla
Kod: Zaznacz cały
for (int i=1;i<2;i++)
{
for (int j=1;j<3;j++)
{
cout<<i<<j<<wartosc[i][j]<<endl;
}
}
też nie wyświetli wszystkich komórek tablicy, tylko dwie, a do tego każda linijka sklei się w jeden ciąg cyfr. Sensowniej jest tak:
Kod: Zaznacz cały
for( int i = 0; i < 2; ++i )
for( int j = 0; j < 3; ++j )
{
cout << "[" << i << "][" << j << "] -> " << wartosc[i][j] << endl;
}
Ogólnie tablica zadeklarowana jako
float wartosc[2][3]; ma sześć komórek indeksowanych parami liczb zaczynających się od zera:
wartosc[0][0],
wartosc[0][1],
wartosc[0][2],
wartosc[1][0],
wartosc[1][1],
wartosc[1][2].