Sponsorlu Bağlantılar
void main(void)
{
int yil = 0;
clrscr();
printf("\n Artik yil tespiti...");
printf("\n =================");
printf("\n Kontrol edilecek yili giriniz : ");
scanf("%i",&yil);
fflush(stdin);
if( yil % 4 == 0 || yil%400 == 0 )
printf("\n %i yili artik yildir. ");
else
printf("\n %i yili artik yil degildir.");
getch();
}
Gelen yoruma itafen kodun açıklaması:
Program, bir yılın artık yıl olup olmadığını sınar. Bir yıl içinde, Şubat ayı 29 gün olursa o yıl artık yıl olarak adlandırılır. Artık yıl peryodik olarak 4 yılda bir gelir. Genel kanı "bir yıl 4 ile tam bölünebirse o yıl artık yıldır" şeklindedir. Fakat 1996 artık yıl iken 1800 artık yıl değildir. Genel sorgulama söyle olmalıdır: Eğer bir yıl
- 4 ile tam bölünüyorsa VE 100'e tam bölünmüyorsa VEYA
- 400 'e tam bölünüryorsa
o yıl artık yıldır.
Sponsorlu Bağlantılar
Dostum son kısım biraz yanlış. 1700 girersek artık yıl olmamasına rağmen artık yıldır diyecektir.
YanıtlaSilYanlışlık nerde anlayamadım biraz daha açık olursan ?
YanıtlaSilyanlışlık şurda ki 1700 girildiğinde yil%4==0 kısmı true olacağı için artık yıldır diyecek
YanıtlaSilbuyüzden bu kısmı parantez içine alıp parantez içinde &&yil%100!=0 eklemelisin