faustin 16 Napisano 22 stycznia Udostępnij Napisano 22 stycznia Witam mam taki problem , otóż napisałam sobie program wspomniany w temacie postu tyle tylko,że po kompilacji wyskakuje jakiś czerwony komunikat widoczny na zdjęciu , program oczywiscie sam w sobie sie kompiluje i działa wiec co takieg jest źle ,że takie coś wyskakuje??? oto kod #include <iostream> using namespace std; class robaki { public: int liczba_nog; int dlugosc; void pytaj(string pytanie, int &odpowiedz); }; void pytaj(string pytanie, int &odpowiedz) { cout<<pytanie; cin>>odpowiedz; } int main() { float suma=0; float srednia =0; robaki robak; int ile; cout<<"podaj liczbe robakow do wczytania"<<endl; cin>>ile; for(int i=0;i<ile;i++) { // cout<<"podaj liczbe nóg robaka"<<i+1<<endl; pytaj("podaj liczbe nog robaka ",robak.liczba_nog); for(int j=0;j<robak.liczba_nog;j++) { pytaj("podaj długosc kazdej nogi robaka",robak.dlugosc); suma+=robak.dlugosc; } cout<<"suma długosci nóg tego robaka wynosi"<<suma<<endl; srednia=suma/robak.liczba_nog; cout<<"srednia długośc nogi robaka wynosi"<<srednia<<endl; } return 0; } Cytuj Link to post Share on other sites
faustin 16 22 stycznia Autor tematu Udostępnij 22 stycznia oczywisćie jesli ktośby miał inną koncepcje kodu tego programu , bardziej łatwiejszą to bardzo prosiłabym o podesłanie, program ogólnie ma za zadanie wprowadzać liczbe robakow w sensie gąsienic oraz wprowadzić liczbe ich odnózy (odnóza są niby innej długosci),a także wprowadzić długość każdej z odnózy i wylliczyć średnią długośc nóg każdego robaka i jeszcze ale tego nie wiem jak zrobić wyznaczyć czy dłuższe odnóza są na przodzie czy na tyle robaka. Cytuj Link to post Share on other sites
H1M4W4R1 546 22 stycznia Udostępnij 22 stycznia O matko... no to znów czas na pisanie... Implementowanie metody, która znajduje się w klasie musi być poprzedzone nazwą klasy Klasy tworzy się z wykorzystaniem wskaźnika oraz operatora "new" int jest większym typem niż float, dlatego zaleca się korzystać z double, ale to tylko dobra praktyka Komunikat jest efektem tego, że zmienna "robak" nie jest zainicjalizowana (wskazuje na adres 0x0), który jest zarezerwowany dla systemu operacyjnego i do którego nie można uzyskać dostępu. #include <iostream> using namespace std; class robaki { public: int liczba_nog; int dlugosc; void pytaj(string pytanie, int &odpowiedz); }; void robaki::pytaj(string pytanie, int &odpowiedz) // Poprawna implementacja metody w klasie { cout << pytanie; cin >> odpowiedz; } int main() { double suma = 0; double srednia = 0; robaki robak = *new robaki(); // Inicjalizacja klasy int ile; cout << "podaj liczbe robakow do wczytania" << endl; cin >> ile; for (int i = 0; i < ile; i++) { robak.pytaj("podaj liczbe nog robaka ", robak.liczba_nog); // Poprawa wywołań metody for (int j = 0; j < robak.liczba_nog; j++) { robak.pytaj("podaj długosc kazdej nogi robaka", robak.dlugosc); suma += robak.dlugosc; } cout << "suma długosci nóg tego robaka wynosi" << suma << endl; srednia = suma / robak.liczba_nog; cout << "srednia długośc nogi robaka wynosi" << srednia << endl; } return 0; } 1 Cytuj Link to post Share on other sites
faustin 16 22 stycznia Autor tematu Udostępnij 22 stycznia Dziękuję bardzo za pomoc a czy można by byłoby napisać ten kod bez tej rezerwacji pamięci posługując się tylko dwoma pętlami ? Cytuj Link to post Share on other sites
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!