Täytyisi kirjoitta ohjelma c-kielellä, joka tulostaa syötettyä päivämäärää seuraavan päivän päivämäärän.
Miten kannattaisi tehdä???
Kaipaan hyviä vinkkejä!
Miten kannattaisi tehdä???
Kaipaan hyviä vinkkejä!
Turvaa tilisi vahvistamalla puhelinnumerosi. Voit silloin palauttaa unohtuneen salasanan tekstiviestillä.
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 3
Vanhimmat
eli jos ymmärsin oikein;
Syötä: "30.3.2006"
Tulosta: "1.4.2006. Aprilli, aprilli, syö silli ja juo kuravettä päälle!"
C ei automaattisesti sisällä mitään aikaan liittyviä datatyyppejä. Sinun pitäisi lukea syöte tekstinä soyte char[256];.
Sen jälkeen pilkot söytteen merkkikohtaisesti muuttujiin int pv,kk,vuosi; (etsit välimerkki "." tai "/" ja sijoitat merkit mitä löydät ennen sitä merkkipuskuriin. Sitten luet puskurista tekstiarvot numeeriseen(int) muotoon (scanf()) muuttujiin)
Sitten lisäät muuttujaan pv yhden päivän: pv ;
Sitten tarkistat että kuukauden päivät ei ole ylittyneet (älä unohda karkausvuodet helmikuun kohdalla), tyyliin
int kuukausi[12] {31,28,31,30,..};
if(karkausvuosi(vuosi))kuukausi[1]=29;
else kuukausi[1]=28; //indeksi 1 on helmikuu
if (pv > kuukausi[kk-1]){ //indeksi alkaa c:ssä nollasta, kuukausissa 1:stä
kk ;
pv=1;
}
Sitten vaan tulostat pv,kk ja vuosimuuttujat.
Ei ihan näin helppoa: Vuosikin vaihtuu:
if(kk>12){
vuosi ;
kk=1;
pv=1;}
jos mietit miten saat ne humoristiset lisäkommentit:
if(pv==1 && kk==4) print("Aprilli,..");
else if(pv==1 && kk==5) print("Hauskaa vappua!);
else if(pv==25 && kk==8) print("Paljon onnea Synttärillä, Seppo!);
else print("joka päivä on uusi eilinen");
Tuossa on vinkkiä riittävästi, ellet itse tee mitään et myöskään opi mitään!
'eli jos ymmärsin oikein;
Syötä: "30.3.2006"
Tulosta: "1.4.2006. Aprilli, aprilli, syö silli ja juo kuravettä päälle!" '
Tuo ohjelmahan toimisi siis väärin jos sen pitäisi ilmoittaa seuraava päivä.
ikuisen kalenterin ja sitten siitä ikuisesta kalenterista tulostat sen seuraavan päivämäärän.