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

Problem z zadaniem z rozdz. 26.

Ostatnio zmodyfikowano 2011-07-06 00:55
Autor Wiadomość
mykosik
Temat założony przez niniejszego użytkownika
Problem z zadaniem z rozdz. 26.
» 2011-07-04 11:37:13
Jak mam przesłać tablice do funkcji skoro w wywołanych  funkcjach

C/C++
for( int i = 0; i < 2; i++ )
     wczytajOsobe( imie[ i ], nazwisko[ i ], wiek[ i ] );

for( int i = 0; i < 2; i++ )
     wypiszOsobe( imie[ i ], nazwisko[ i ], wiek[ i ] );


[ \c pp ]


nie ma argumentu "ile elementów" jest w tablicy ?
P-35272
ison
» 2011-07-04 11:53:31
jeśli przesyłasz imie[ i ] to przesyłasz jedynie 1 element tablicy imie a nie całą tablicę
P-35273
jaupl
» 2011-07-04 11:56:03
Jak to nie ?? ja to rozumiem tak :
C/C++
for( int i = 0; i < 2; i++ )
     wczytajOsobe( imie[ i ], nazwisko[ i ], wiek[ i ] );

czyli do funkcji wczytujesz konkretny element tablicy a nie całą tablicę, czyli tak jakby zwykłą zmienną, tak? // Popraw swój post.
P-35274
jankowalski25
Odpowiedź znajduje się na forum
» 2011-07-04 11:58:59
Zajrzyj na forum. Wejdź na 3 stronę i kliknij na 4 temat od końca "zadanie domowe z rozdzialu 25" założony przez lukaszsuch1993. Przeczytaj to i sprawdź, czy odnosi się do tego zadania.
P-35275
mykosik
Temat założony przez niniejszego użytkownika
» 2011-07-04 11:59:04
Tak też myslałem ale co jest z tym kodem nie tak?
Wywala mi błąd przy konwertowaniu string do string przy argumencie 1
C/C++
#include <iostream>
#include <string>
using namespace std;

void wczytajOsobe( string tab1[], string tab2[], int tab3[] )
{
    int i = 1;
    bool spraw;
    cout << "Podaj imie " << endl;
    cin >> tab1[ i ];
    cout << "Podaj nazwisko " << endl;
    cin.sync();
   
    cin >> tab2[ i ];
    do {
        cout << "Podaj swoj wiek" << endl;
        cin.clear();
        cin.sync();
        cin >> tab3[ i ];
        spraw = cin.good();
        if( spraw == false )
        {
            cout << "podales litere a nie liczbe" << endl;
        }
        if( tab3[ i ] <= 0 )
        {
            cout << "Jeszcze sie nie urodziles" << endl;
        }
        if( tab3[ i ] > 135 )
        {
            cout << "To nie mozliwe ale..." << endl;
        }
    } while( spraw == false || tab3[ i ] <= 0 || tab3[ i ] > 135 );
   
}


void wypiszOsobe( string tab1[], string tab2[], int tab3[] )
{
    int i = 1;
    cout << tab1[ i ] << " " << tab2[ i ] << " " << tab3[ i ] << " lat" << endl;
}




int main()
{
    string imie[ 2 ];
    string nazwisko[ 2 ];
    int wiek[ 2 ];
    for( int i = 0; i < 2; i++ )
         wczytajOsobe( imie[ i ], nazwisko[ i ], wiek[ i ] );
   
    for( int i = 0; i < 2; i++ )
         wypiszOsobe( imie[ i ], nazwisko[ i ], wiek[ i ] );
   
    return 0;
}


[ / cpp ]
P-35276
ison
» 2011-07-04 12:01:19
próbujesz przekazać 1 element kiedy funkcja oczekuje na całą tablicę (lub wskaźnik na std::string)
P-35277
jaupl
» 2011-07-04 12:01:47
chyba ze string * do string . bo to nie ma być tablica tylko zwykła zmienna ! (w funkcji,jako argument)
// czemu ty piszesz tak "[ cpp] [ \c pp]" ??
P-35279
jankowalski25
Skasuj klamry "[]"
» 2011-07-04 12:03:04
To nie tablice, tylko "zwykłe" zmienne. Musisz usunąć klamry "[]" i trochę zmodyfikować kod.
P-35280
« 1 » 2
  Strona 1 z 2 Następna strona