19 Ağustos 2013 Pazartesi

Girilen yılın artık yıl olup olmadığını tespit eden program

Sponsorlu Bağlantılar
#include <conio.h>

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

3 yorum:

  1. Dostum son kısım biraz yanlış. 1700 girersek artık yıl olmamasına rağmen artık yıldır diyecektir.

    YanıtlaSil
  2. Yanlışlık nerde anlayamadım biraz daha açık olursan ?

    YanıtlaSil
  3. yanlışlık şurda ki 1700 girildiğinde yil%4==0 kısmı true olacağı için artık yıldır diyecek
    buyüzden bu kısmı parantez içine alıp parantez içinde &&yil%100!=0 eklemelisin

    YanıtlaSil