Problem z zadaniem z rozdz. 26.
Ostatnio zmodyfikowano 2011-07-06 00:55
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 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 ?
|
|
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ę |
|
jaupl |
» 2011-07-04 11:56:03 Jak to nie ?? ja to rozumiem tak : 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. |
|
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. |
|
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 #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 ] |
|
ison |
» 2011-07-04 12:01:19 próbujesz przekazać 1 element kiedy funkcja oczekuje na całą tablicę (lub wskaźnik na std::string) |
|
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]" ?? |
|
jankowalski25 |
Skasuj klamry "[]" » 2011-07-04 12:03:04 To nie tablice, tylko "zwykłe" zmienne. Musisz usunąć klamry "[]" i trochę zmodyfikować kod. |
|
« 1 » 2 |