W1ll_3ty Temat założony przez niniejszego użytkownika |
[C++] Poziom 3 Rozdział 26 Problem w zadaniu » 2016-06-28 21:13:03 Witam, gdy próbuję wykonać zadanie domowe w rozdziale 26 wychodzą mi takie błędy, które zaraz podam. Jak mam to naprawić i czy sam kod jest dobry? C:\Users\Maciek\Desktop\Admin\C++\wyrazy.cpp||In function 'int main()':| C:\Users\Maciek\Desktop\Admin\C++\wyrazy.cpp|28|error: cannot convert 'std::string' to 'int*' for argument '1' to 'int wczytajOsobe(int*, int*, int*, int)'| C:\Users\Maciek\Desktop\Admin\C++\wyrazy.cpp|30|error: expected ')' before ';' token| C:\Users\Maciek\Desktop\Admin\C++\wyrazy.cpp|30|error: expected primary-expression before ')' token| C:\Users\Maciek\Desktop\Admin\C++\wyrazy.cpp|30|error: expected ';' before ')' token| ||=== Build finished: 4 errors, 0 warnings ===|
A to mój kod: #include <iostream> #include <string> using namespace std;
int wczytajOsobe( int imie[], int nazwisko[], int wiek[], int i ) { cout << "Wpisz swoje imie: "; cin >> imie[ i ]; cout << "Wpisz swoje nazwisko: "; cin >> nazwisko[ i ]; cout << "Wpisz swoj wiek: "; cin >> wiek[ i ]; }
int wypiszOsobe( int imie[], int nazwisko[], int wiek[], int & i ) { cout << endl << "Imie " << i << "osoby to: " << imie[ i ] << endl; cout << endl << "Nazwisko " << i << "osoby to: " << nazwisko[ i ] << endl; cout << endl << "Wiek " << i << "osoby to: " << wiek[ i ] << 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 ], i ); for( int i = 0; i < 2; i++; ) wypiszOsobe( imie[ i ], nazwisko[ i ], wiek[ i ], i ); return 0; }
|
|
mateczek |
» 2016-06-28 21:18:12 imie to tablica liczb int wczytajOsobe( int imie[], int nazwisko[], int wiek[], int i ) |
|
W1ll_3ty Temat założony przez niniejszego użytkownika |
» 2016-06-28 21:29:16 Za dużo mi to nie mówi. Mógłbyś bardziej rozwinąć swą myśl. |
|
W1ll_3ty Temat założony przez niniejszego użytkownika |
» 2016-06-28 22:33:05 Jeśli nie wiecie jak to naprawić to chociaż podajcie gotowy kod, bym mógł go przeanalizować. Będę wdzięczny. |
|
carlosmay |
» 2016-06-28 22:36:37 wczytajOsobe( imie[ i ], nazwisko[ i ], wiek[ i ], i )
int wczytajOsobe( int imie[], int nazwisko[], int wiek[], int i )
int wypiszOsobe( int imie[], int nazwisko[], int wiek[], int & i )
edit: Jeśli nie wiecie jak to naprawić to chociaż podajcie gotowy kod |
Jeśli nie wiemy jak to naprawić, to jak mamy umieć napisać poprawny kod? #include <iostream> #include <string>
void addPerson( std::string & name, std::string & surname, int & age ) { std::cin >> name >> surname >> age; std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); }
void printPersons( std::string names[], std::string surnames[], int ages[], int size ) { for( std::size_t i = 0; i < size; ++i ) { std::cout << surnames[ i ] << ", " << names[ i ] << " " << ages[ i ] << '\n'; } }
int main() { std::string names[ 2 ]; std::string surnames[ 2 ]; int ages[ 2 ]; int currentSize; for( currentSize = 0; currentSize < 2; ++currentSize ) { addPerson( names[ currentSize ], surnames[ currentSize ], ages[ currentSize ] ); } printPersons( names, surnames, ages, currentSize ); }
Tutaj jest komunikacja z funkcjami na dwa sposoby. Przekazanie pojedynczych elementów oraz całych tablic, wraz zaktualizowanym rozmiarem tablic. Za dużo mi to nie mówi. Mógłbyś bardziej rozwinąć swą myśl. |
Proponuje wrócić do rozdziałów o funkcjach i tablicach. |
|
W1ll_3ty Temat założony przez niniejszego użytkownika |
» 2016-06-28 23:12:14 Proponuje wrócić do rozdziałów o funkcjach i tablicach.
|
Zrozumiałem, że chodziło mu o to, że tam nie może być "int", ale gdy zamieniłem to na string nadal występował ten błąd. Dalej nie będę już nic komentować, bo jest późno. Dzięki! |
|
carlosmay |
» 2016-06-28 23:22:34 że tam nie może być "int", ale gdy zamieniłem to na string nadal występował ten błąd. |
Występował, bo nie rozumiesz co przekazujesz do funkcji i czego funkcja oczekuje. Przekazujesz do funkcji jeden element tablicy (czyli słowo), a funkcja oczekuje tablicy słów. Przeanalizuj podrzucony przykład. |
|
W1ll_3ty Temat założony przez niniejszego użytkownika |
» 2016-06-29 09:49:11 Przeanalizowałem twój kod i poprawiłem mój. Wiem co przekazuję do funkcji i co ona oczekuje. Tylko myślałem, że to nie ważne czy przekazuję jeden element tablicy czy kilka, tylko, że w funkcji i tak muszę napisać []. Zrozumiałem to dopiero później. |
|
« 1 » |