Teen harrastuksen vuoksi ohjelmaa, jonka avulla voi laskea lainan takaisinmaksun. Nyt ongelmaksi näyttää muodostuvan kaksi asiaa.
1. Lyhennyksien kokonaissumma on suurempi kuin alkuperäinen laina.
2. Karkausvuosi pitäisi ottaa huomioon kun helmikuussa on silloin yksi päivä enemmän.
Tällä hetkellä minulla on normaalin vuoden päivät taulukossa. Kuukaudet[12] = {31.00, 28.00 jne... };
1. Lyhennyksien kokonaissumma on suurempi kuin alkuperäinen laina.
2. Karkausvuosi pitäisi ottaa huomioon kun helmikuussa on silloin yksi päivä enemmän.
Tällä hetkellä minulla on normaalin vuoden päivät taulukossa. Kuukaudet[12] = {31.00, 28.00 jne... };
Vastaukset 7
Vanhimmat
Minä aina joskus harrastuksen vuoksi vastailen viesteihin täällä. Toisinaan kysymykset ovat lyhyitä ja ytimekkäitä, toisinaan eivät. Jos kysymys on epäselvä, niin en tiedä mihin vastata.
Tällä hetkellä minulla on aikomus lähteä hieman ulkoilemaan.
Eli siis miten voin valita" oikean taulukon? jos on vaikkpa kaksi erilaista taulukkoa toisessa taulukossa indeksi 1 osoittaa helmikuulle lukua 28.00 ja toisesa 29.00.
Selkenikö?
Voisi kait ajatella funktiota, joka palauttaa vaikkapa 1 jos on karkausvuosi ja 0 jos ei ole.
Mutta mutta miten tämä tehdään?
No ei mahdottoman selkeää ole vieläkään, mutta ehkä karkausvuoden laskentamekanismi auttaa. Vuosi X on karkaus vuosi jos se on neljällä jaollinen ( X % 4 == 0) paitsi jos se on myös sadalla jaollinen ( X % 100 == 0) paitsi jos se on myös neljälläsadalla jaollinen ( X % 400 == 0).
Siis 2000 oli karkausvuosi, koska se on jaollinen 4:llä ja 400:lla (ja sadalla, mutta se ei haittaa, koska se on jaollinen 400:lla). 1996 on kv. koska se on neljällä jaollinen. 1900 ei ole karkausvuosi vaikka se on neljällä jaollinen koska se on sadalla jaollinen, mutta ei neljälläsadalla.
Tätäkö haet?
>...miten tämä tehdään?
int is_leap_year(int year) {
/*
// leap year:
// is divisable by 4 and not by 100
// is divisable by 400
*/
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
return 1; /* leap */
else
return 0; /* no leap */
}
http://www.c.happycodings.com/Miscellaneous/code34.html
Mutta tuossa on virhe.
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
Oletan että pitäisi olla:
if((year % 4 == 0) || (year % 100 != 0 && year % 400 == 0))
Koska karkausvuosi on joka neljäs vuosi, mutta joka sadas vuosi jos se on myös neljälläsadalla vuodella jaollinen. Näion se ainakin toimii eli kiitoksia vaan.
>...tuossa on virhe.
Nyt on tainnut jäädä kotiläksyt lukematta mutta se ei näköjään lannista hinkua julistaa. :)
Nimenomaan tuo alkuperäinen (ylempi) if-lause toimii oikein. Ja logiikallakin ymmärtää että tuo alempi ei voi toimia oikein kun se on "or"-ehto neljällä jaolliselle joten noilla lopuilla tarkasteluilla ei ole mitään merkitystä koska vasemmanpuoleinen ehto toteutuu joka tapauksessa aina myös täysillä vuosisadoilla.
Ota ja kokeile jos et usko.
Ja jos on miestä niin pyydät näsäviisauttasi anteeksi neuvojalta.
Kokeile ajaa vuodet 3000 ja 2200 omalla versiol-
lasi.Nehän eivät ole karkausvuosia,mutta sinun
tulkinnallasi ovat!!