Streamline Temat założony przez niniejszego użytkownika |
Tablica el. char* w funkcji » 2017-07-18 01:20:05 Cześć. Proszę o pomoc. Funkcja show_tab powinna wypisać kazdą porę roku w nowym wierszu, niestety wypisuje tylko jedną literę np: W=... i=... o=... s=... Co powinienem zmienić? Aby ujrzeć wynik: Wiosna=... Lato=... Jesien=... Zima=... const char * Pory_roku[ Seasons ] = { "Wiosna", "Lato", "Jesien", "Zima" };
void show_tab( const char * Pory_roku, const double w[], const int n ) { for( int i = 0; i < n; i++ ) { cout << Pory_roku[ i ] << ": " << w[ i ] << endl; } }
|
|
carlosmay |
» 2017-07-18 01:50:25 const char * Pory_roku[ Seasons ] = { "Wiosna", "Lato", "Jesien", "Zima" }; |
Tutaj definiowana jest tablica tablic, a do funkcji przekazywana jest tablica znaków, więc... (nie powinno się skompilować, lub chociaż ostrzeżenie). void show_tab( const char ** Pory_roku, const double w[], const int n ) |
|
Streamline Temat założony przez niniejszego użytkownika |
» 2017-07-18 02:05:53 Dzięki za odpowiedź. Logiczne to co napisałeś. Poprawiłem, zmieniając prototyp i definicję funkcji na **, tylko że nadal coś nie trybi, próbowałem też zmiany w wywołaniu funkcji na **, nic z tego. Potrzebuję jeszcze jakieś wskazówki :)
|
|
killjoy |
» 2017-07-18 02:10:07 #include <iostream> using namespace std;
const int Seasons = 4; const char * Pory_roku[ Seasons ] = { "Wiosna", "Lato", "Jesien", "Zima" };
void show_tab( const char ** Pory_roku, const int n ) { for( int i = 0; i < n; i++ ) { cout << Pory_roku[ i ] << endl; } }
int main() { show_tab( Pory_roku, 4 ); }
|
|
latajacaryba |
» 2017-07-18 02:16:11 Zostalem uprzedzony :D Ale jak juz tekst gotowy to zostawie: cout << Pory_Roku[ i ] << endl;
Dlaczego tak? Bo to tablica tablic! Kazda litera np. W i o s n a to osobny indeks tablicy. Takich tablica sa 4, bo 4 pory roku. Ty wypisujesz wiec cala tablice PoryRoku[0] - to tablica z zawartoscia: "wiosna" PoryRoku[0][0] to pierwszy znak w pierwszej tablicy - w (pierwszy znak w wyrazie wiosna) |
|
carlosmay |
» 2017-07-18 02:19:26 Do treści "opisowej" dodajemy jeszcze treść błędów kompilacji dla ułatwienia diagnozy. |
|
Streamline Temat założony przez niniejszego użytkownika |
» 2017-07-18 11:13:50 Dzięki za odpowiedzi :). Teraz wszystko hula jak powinno. Myślałem, że skoro w prototypie funkcji podajemy **, to w wywołaniu też powinniśmy. |
|
« 1 » |