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

Tablica el. char* w funkcji

Ostatnio zmodyfikowano 2017-07-18 11:13
Autor Wiadomość
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=...

C/C++
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;
    }
}
P-163384
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 )
P-163385
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 :)
P-163386
killjoy
» 2017-07-18 02:10:07
C/C++
#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 );
   
   
   
   
   
}
P-163387
latajacaryba
» 2017-07-18 02:16:11
Zostalem uprzedzony :D
Ale jak juz tekst gotowy to zostawie:
C/C++
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)
P-163388
carlosmay
» 2017-07-18 02:19:26
nadal coś nie trybi,
Do treści "opisowej" dodajemy jeszcze treść błędów kompilacji dla ułatwienia diagnozy.
P-163389
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.
P-163390
« 1 »
  Strona 1 z 1