Witam, piszę w programie Code::Blocks 13:12 z mingw i za zadanie mam napisanie takiego programu:
Pani Binarna została właścicielką kurzej fermy, na której znajduje się 200 kur niosek.
Kilogram paszy kosztuje 1,9 zł, a jedna kura zjada przez cały dzień 0,2 kg paszy.
Rozważamy okres hodowli trwający sto osiemdziesiąt dni. Dni są ponumerowane
od 1 do 180. Pierwsza niedziela przypada siódmego dnia.
Codziennie w południe, z wyjątkiem niedziel, każda kura znosi 1 jajko i tego samego dnia
pani Binarna sprzedaje wszystkie jajka w cenie 0,9 zł za sztukę.
W okolicach fermy grasuje lis, który w każdy dzień o nieparzystym numerze, po zmroku
(po posiłku kur, po zniesieniu i ewentualnym sprzedaniu jajek) zmniejsza liczbę kur
o 2 sztuki naraz.
Co 30 dni (tj. w dniu trzydziestym, sześćdziesiątym itd.) rano, przed posiłkiem kur,
pani Binarna powiększa stado o 20%, kupując kolejne kury na giełdzie (liczbę kupionych kur
zaokrąglamy w dół do liczby całkowitej) po 18 zł za sztukę.a) Podaj, w którym dniu i o jakiej porze dnia po raz pierwszy liczba kur ponownie osiągnie
wartość dokładnie 200 sztuk.
b) Podaj łączną kwotę, jaką pani Binarna wydała na paszę dla kur w ciągu 180 dni.
c) Każdego dnia pani Binarna oblicza swój dzienny zysk, którym jest kwota ze sprzedaży
jajek pomniejszona o koszt paszy dla kur i koszt kur dokupionych w tym dniu. Realnym
zyskiem po danym dniu jest suma dotychczas uzyskanych dziennych zysków.
Podaj, po którym dniu po raz pierwszy realny zysk pani Binarnej przekroczy 1 500 zł,
oraz podaj, jaki będzie realny zysk pani Binarnej po 180 dniach.
Mój kod wygląda tak:
#include <iostream>
#include <cstdlib>
using namespace std;
main(){
string pora;
int kury=200, spr1 = 0, spr2 = 0;
float zarobek=0, koszt_paszy=0, koszt_kur=0;
for(int i = 1; i<=180; i++){
pora = "ranek";
if ( (i % 30) == 0){
kury = kury + kury/5;
koszt_kur = koszt_kur + ( (kury/5)*18 );
}
if ( kury==200 && i!= 1 && spr1==0){
cout << "Jest ponownie 200 kur, jest " << pora << " dnia " << i <<endl;
spr1 = 1;
}
koszt_paszy = koszt_paszy + (kury*0.2*1.9);
if ( (i % 7) != 0){
zarobek = zarobek + (kury*0,9);
}
pora = "poludnie";
if ( (i % 2) != 0){
kury = kury-2;
}
pora = "noc";
if ( (zarobek-koszt_paszy-koszt_kur)>1500 && spr2==0 ){
cout << "Realny zarobek w dniu " << i << " przekroczyl 1500 i wynosi " << zarobek-koszt_paszy-koszt_kur;
spr2=1;
}
}
cout << endl << "Laczny koszt paszy wynosi " << koszt_paszy << endl;
cout << "Realny zysk po 180 dniach to " << zarobek-koszt_paszy-koszt_kur << endl;
return 0;
};
Coś jest jednak nie tak, bo otrzymuję ujemny zysk, a wnioskując z treści zadania nie ma takiej opcji (gdyż mamy podać kiedy przekroczy on 1500zł.
Sporo czasu spędziłem już szukając tu błędu, ale nie mogę się go doszukać. Czuję, że wina leży po stronie jakiegoś głupiego błędu przeze mnie popełnionego. Proszę o wyrozumiałość, gdyż jestem początkujący (ale nie przyszedłem tutaj nie doszukując się wpierw rozwiązania na własną rękę). Pozdrawiam i proszę o pomoc.