[ _shame_ @ 07.06.2006. 19:55 ] @
Trebala bi mi mala pomoc oko programa,koji za upisani danasnji datum izbacuje sutrasnji,sve je ok,dok se ne pojavi zadnji dan u mesecu ili godini...
[ Mali Misha @ 07.06.2006. 20:39 ] @
Ako imaš program koji rešava neki problem u većini ali ne i u svim slučajevima, jedno od rešenja je da napraviš jedan ili nekoliko if - else-if odeljaka za te problematične podslučajeve, a na kraju ostaviš else kroz koga će biti pušteni preostali slučajevi koje program već rešava. Npr. računanje cene fotokopiranja. Do 99 kopija je 10 para po komadu, od 100 do 199 kopija 6 para po komadu a od 200 kopija se tarifira sa 3 pare po komadu.

Na primer kod
Code:
cena = komada * 0.03;
neće da radi posao kako treba ali
Code:
if(komada<100)
{
    cena = komada * 0.1;
}
else if(komada<200)
{
    cena = komada * 0.06;
}
else
{
    cena = komada * 0.03;
}
hoće.

(u navedenom slučaju bi operator ?: bio najkompaktnije rešenje ali to ne beše poenta ovde)

[Ovu poruku je menjao Mali Misha dana 07.06.2006. u 21:49 GMT+1]
[ mb_sa @ 07.06.2006. 20:57 ] @
Pa kada je zadnji dan u mjesecu, jednostavno dan stavljas na "1", a mjesec povecavas za jedan.

Code:
if (dan > 31) { 
    dan=1;
             mjesec++; 
}


isi fazon je i sa godinom

Code:
if (mjesec > 12) {
       mjesec=1; 
    godina++;

}


Naravno, pazi na prestupne godine i broj dana u mjesecu.
[ IDE @ 07.06.2006. 21:09 ] @
ako koristis Borland Builder, imas f-je koje ce ti to odraditi u jednoj liniji koda....

[Ovu poruku je menjao fucking voodoo dana 07.06.2006. u 23:59 GMT+1]
[ Marko Medojević @ 07.06.2006. 21:17 ] @
Evo rešio sam ti ceo zadatak!


#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
int dan, mesec, godina, i;
int m[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31 ,30, 31};
cout<<"Unesi dan: ";
cin>>dan;
cout<<"Unesi mesec: ";
cin>>mesec;
cout<<"Unesi godinu: ";
cin>>godina;
if(godina%4 == 0) m[1]++;
dan++;
if(dan>m[mesec-1])
{
mesec++;
dan=1;
}
if(mesec>12)
{
godina++;
mesec=1;
}
cout<<endl;
cout<<"Dan je: "<<dan<<endl;
cout<<"Mesec je: "<<mesec<<endl;
cout<<"Godina je: "<<godina<<endl;
cin>>i;
return 0;
}


Program ne kontrolise da li si uneo ispravan datum. To ubaci sam.
Pozz
[ _shame_ @ 07.06.2006. 23:17 ] @
Zahvaljujem se svima na pomoći....hvala
[ idb @ 08.06.2006. 10:11 ] @
Mozda je najbolje da koristis standardnu C biblioteku za vreme i datum:
Code:

#include <ctime>
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
    char ct0[80];
    time_t     tt_0 = time (NULL);
    struct tm *ptr0 = localtime(&tt_0); 
    strftime(ct0, 79, "%d-%m-%Y",ptr0);
    cout<<"Danas: " << ctime(&tt_0)<<"  (samo datum: "<< ct0 <<")\n\n";

    char ct1[80];
    time_t     tt_1 =  time (NULL) + 60*60*24;
    struct tm *ptr1 = localtime(&tt_1);
    strftime(ct1, 79, "%d-%m-%Y",ptr1);
    cout<<"Sutra: " << ctime(&tt_1)<<"  (samo datum: "<< ct1 <<")\n\n";

    system("PAUSE");
    return EXIT_SUCCESS;
}

... zasto bi ti razmisljo koliko koji mesec ima dana, kad to moze neko drugi,
sa namenskim fukcijama za tako nesto <time.h>
Naravno, na tebi je da iskoristis ove funcije kako trebi odgovara.

idb