Siema, ostatnio zainteresowałem się językiem C++ i coś zamierzam robić w tym kierunku w najbliższym czasie i jak na razie chcę stworzyć coś takiego, że po wpisaniu daty urodzenia i aktualnej daty program poda nam dokładną ilość dni jaką przeżyliśmy. Siedzę nad tym już dobre kilka godzin i wymajstrowałem coś takiego:
#include
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int rok,miesiac,dzien,arok,amiesiac,adzien,wynik;
string znak;
cout<<"Podaj rok urodzenia."<
cin>>rok;
cout<<"Podaj numer miesiaca, w ktorym sie urodziles."<
cin>>miesiac;
cout<<"Podaj dzien, w ktorym sie urodziles."<
cin>>dzien;
cout<<"Podaj aktualny rok"<
cin>>arok;
cout<<"Podaj aktualny miesiac"<
cin>>amiesiac;
cout<<"Podaj aktualny dzien."<
cin>>adzien;
cout<<"Co chcesz teraz zrobic?"<
cout<<"Wpisz 1 aby dowiedziec sie ile lat zyjesz"<
cout<<"Wpisz 2 aby dowiedziec sie ile miesiecy zyjesz"<
cout<<"Wpisz 3 aby dowiedziec sie ile dni zyjesz"<
cin>>znak;
if(znak=="1")
{
wynik=arok-rok;
}
if (znak=="2")
{
wynik=(arok-rok)*(12-(12-amiesiac));
}
if (znak=="3")
{
wynik=(arok-rok)*365-(12-amiesiac*(31,28,31,30,31,30,31,31,30,31,30,31));
}
cout<<"Wynik wynosi:"<
system("PAUSE");
return EXIT_SUCCESS;
}
Jest to praktycznie pierwsze moje spotkanie z C++ i jestem zupełnie początkujący
Ale nie mam zielonego pojęcia co zrobić aby program uwzględniał lata przestępne czy coś… Po prostu zawsze myli się o te 100dni przy mojej dacie… Im ktoś się wcześniej urodzi tym pomyłka będzie większa… Pomożecie mi jakoś z tym programem? Robię go na podstawie jakiegoś kalkulatora znalezionego w internecie Wcześniej na jego podstawie zrobiłem test A, B, C ale z tym nie miałem problemów.
Bo ja Ci powiem, że jest on równoważny temu, a na pewno nie o to CI chodziło:
(arok-rok)*365-(12-amiesiac*31);
Kod jest składniowo poprawny, ale nie robi tego o czym piszesz. Tyle, że to nie kwestia znajomości C++ (poza powyższym kodem), a kwestia algorytmu. Weź może zwyczajnie kartkę i ołówek i napisz sobie jakie obliczenia trzeba by wykonać. A do tego wymagana jest tylko znajomość podstaw arytmetyki i znajomości kalendarza.
Tylko jak uwzględnić lata przestępne? Po kolei mam wszystko wypisywać? ;p Po prostu nie mam pojęcia jak to wszystko zapisać w Dev C++. Kolega jeden mi napisał, że lepiej by to wyglądało tak:
include
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int i=0,dzien=0,miech=0,rok=0,prz=0,suma=0,luty=0,prze=0;
int tdzien=0,tmiech=0,trok=0;
cout<<"Podaj dzien urodzin:"<
cin>>dzien;
cout<<"Podaj miesiac urodzin:"<
cin>>miech;
cout<<"Podaj rok urodzin:"<
cin>>rok;
cout<<"Podaj dzisiejsza date"<
cout<<"Podaj dzien:"<
cin>>tdzien;
cout<<"Podaj miesiac:"<
cin>>tmiech;
cout<<"Podaj rok:"<
cin>>trok;
for(i=rok;i
{
prz=rok % 4;
if (prz==0) suma=suma+366;
else
suma=suma+365;
cout<
cout<
}
prze=trok % 4;
if (prze==0) luty=29;
else
luty=28;
int miesiace[12]={31,luty,31,30,31,30,31,31,30,31,30,31}; //obliczanie miesiecy
if (tmiech>miech)
{
for(i=miech;i
suma=suma+miesiace[i];
}
else
{
for(i=tmiech;i
suma=suma-miesiace[i];
}
suma=suma+tdzien;
cout<<"Zyjesz juz "<
system("PAUSE");
return EXIT_SUCCESS;
} [/code]
Tylko, że w tym wszystkiego nie rozumiem a tam rozumiem