C++ Wskaźniki, dwa zadania

Otrzymałeś(aś) rozwiązanie do zamieszczonego zadania? - podziękuj autorowi rozwiązania! Kliknij
alekolorowomi
Witam na forum
Witam na forum
Posty: 1
Rejestracja: 06 sty 2018, 17:49
Płeć:

C++ Wskaźniki, dwa zadania

Post autor: alekolorowomi » 06 sty 2018, 17:53

Witam wszystkich na forum, potrzebuję pomocy przy zrobieniu zadań z c++, chcę to zrozumieć, lecz nie wiem jak się za to zabrać :(
Dane są następujące deklaracje;

struct ksiazka {
  • string nazwa;
  • string autor;
  • int rok;
  • float cena;
  • bool twarda_okladka; // czy ma twarda okladke?
  • bool podrecznik; // czy jest podrecznikiem?


1. Napisz funkcje przyjmujaca tablice ksiazek oraz liczbe elementow w tablicy i zwracajaca liczbe (sume) ksiazek o twardej okladce i podrecznikow o miekkej okladce.
2. Napisz funkcje przyjmujaca tablice ksiazek oraz liczbe elementow w tablicy i zwracajaca indeks najdrozszego podrecznika wydanego przed rokiem 1976. Jezeli w tablicy nie ma ksiazki ktora spelnia te kryteria, funkcja ma zwrocic wartosc -1.

Awatar użytkownika
lambdag
Czasem tu bywam
Czasem tu bywam
Posty: 106
Rejestracja: 18 paź 2017, 19:40
Podziękowania: 26 razy
Otrzymane podziękowania: 15 razy

Re: C++ Wskaźniki, dwa zadania

Post autor: lambdag » 07 sty 2018, 11:49

Książka a podręcznik to samo?
Tzn książeczce przypisze program 0 a podręcznikowi 1?
Cały problem jest w tym jak przekażesz strukturę, ja zrobiłbym to wskaznikiem. Funkcja ma zwracać ilość książek, czyli napewno liczba całkowita coś się kojarzy? O to int.. Całość wyglądałaby by tak, piszę z telefonu pisz jak będzie jakiś problem, ale ogólnie chodzi o to żebyś zrozumiał..
int nazwać(struct ksiazka *nazwa, int ile_k) // albo struct ksiazka nazwa[]
{
int sumapm = 0;
int sumakt = 0;
for(int i = 0; i<ile_k; i++)
{
if(nazwa.twarda_okladka == 1 && a.podręcznik == 0)
{
sumakt++;
}
else if(nazwa.twarda_okladka == 0 && nazwa.podręcznik == 1)
{
sumapm++;
}
}
return sumapm;
return sumakt;
}

Awatar użytkownika
lambdag
Czasem tu bywam
Czasem tu bywam
Posty: 106
Rejestracja: 18 paź 2017, 19:40
Podziękowania: 26 razy
Otrzymane podziękowania: 15 razy

Post autor: lambdag » 07 sty 2018, 12:15

W 3 analogia tylko warunek ma być że data wydania książki < 1976 gdy spełnia warunek musisz nadpisać zmienną tzn dać drugi warunek cena książki > cena poczatkowa jest spełni to cena początkowa = cena książki..
Tylko pamiętaj na początku tej funkcji stwórz zmienną cena początkowa = -1;
Potem daj tylko return cena poczatkowa; <- na końcu, po pętli for..
Wskazówki masz, jak będziesz miał problem pisz.
PS. Zapraszam na pl.spoj.com są tam zadanka oczywiście nie zrażaj się jeśli nie zrobisz za 1 razem..