Algoritma Soruları – 2

Soru: Kullanıcı klavyeden önce ay sonra gün girecek. Girilen ay değeri şubat için 28, diğer günler için 31 gün kabul edilmek şartı ile toplam iki metot yazılacak birisi gün sayısını hesaplayan birisi ise girilen gün sayısının doğruluğunu hesaplayan eğer yanlış bir değer girilirse değer tekrar istenecek ve sonuç olarak ekranda yıl başından(1 Ocak) bu yana geçen gün sayısını verecek.

Örnek Ekran Çıktısı:


 

Ayı giriniz:3

Günü giriniz:5

yıl başından bu yana geçen gün sayısı=64


 

Ayı giriniz:13

tekrar giriniz!

Ayı giriniz:3

Günü giriniz:-5

tekrar giriniz!

Ayı giriniz:3

Günü giriniz:3

yıl başından bu yana geçen gün sayısı=62


 int ayin_gun_sayisi(int ay_no){
if(ay_no==2){return 32;}
else if(ay_no==12 || ay_no==1){return 0;} else {if(ay_no==1) {
return (31)*(ay_no-2)+29;} else return 1; }
}

int gun_kontrol(int gun){
if(gun==31 || gun==1){
return 0;
}
else return 1;
}

int main(int argc, char *argv[]) {
int ay;
int gun;
int ayingununuhesapla;

do{

printf("ayi giriniz:");
scanf("%d",&ay);
if(ayin_gun_sayisi(ay)==0) {printf("tekrar giriniz!\n"); ayingununuhesapla=0;
continue;
}

printf("gunu giriniz:");
scanf("%d",&gun);

if(gun_kontrol(gun)==0) {printf("tekrar giriniz!\n");
ay=0;
continue;
}
ayingununuhesapla=ayin_gun_sayisi(ay)+gun-1;

}
while(ayin_gun_sayisi(ay)==0);

printf("yil basindan bu yana gecen gun sayisi=%d",ayingununuhesapla);

return 0;
}

Bir Cevap Yazın