Programozó versenyek

Levelező Prog1 gyakorlati számonkérés, 2019. május 22.

2019. május 22. 9:00 – 2019. május 22. 12:00

Hull a pelyhes

Mint ismeretes, a Télapó minden évben december 6-án este meglátogatja a gyerekeket, jókat és rosszakat egyaránt, és megjutalmazza őket attól függően, hogy mennyi C nyelvű programot írtak a legutóbbi látogatása óta eltelt időben.

Írjon C függvényt, amely paraméterként megkapja egy érvényes dátum három egész értékű komponensét: egy évszámot, egy hónapszámot és egy napszámot, ebben a sorrendben! A függvény visszatérési értéke legyen az az egész szám, amely jelzi, hogy mennyit kell még aludni a Télapó következő látogatásáig (1 alvás/éjszaka értékkel számolva és a napközbeni alvásoktól eltekintve)! Számításai során vegye figyelembe a csak szökőévekben előforduló február 29-i napokat is! Egy év akkor szökőév, ha osztható 4-gyel, de nem osztható 100-zal, vagy osztható 400-zal. A függvény specifikációja a következő legyen:

A függvény specifikációja

int next_arrival(int, int, int);

Megjegyzés

A függvényt helyezze a next_arrival.c nevű állományba, és ezt az állományt küldje be megoldásként a kiértékelő rendszernek! Megoldását a példa bemenetben szereplő adatokkal az alábbi két állomány segítségével tesztelheti. Megoldásának kiértékelését a tesztelő rendszer nem feltétlenül ezeknek az állományoknak a felhasználásával végzi!

main.c

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5.   int year, month, day;
  6.   int next_arrival(int, int, int);
  7.   while (scanf("%d %d %d", &year, &month, &day) != EOF)
  8.   {
  9.     int res = next_arrival(year, month, day);
  10.     printf("%d\n", res);
  11.   }
  12.   return EXIT_SUCCESS;
  13. }
letöltés szöveges állományként

Makefile

  1. CC = gcc
  2. OBJS = main.o next_arrival.o
  3. TARGETS = main
  4. all: $(TARGETS)
  5. main: $(OBJS)
  6. $(CC) $(OBJS) -o main
  7. main.o: main.c
  8. $(CC) -c main.c
  9. next_arrival.o: next_arrival.c
  10. $(CC) -c next_arrival.c
  11. clean:
  12. rm -rf $(OBJS) *~ $(TARGETS)
letöltés szöveges állományként

Példa bemenet

  1. 2014 12 05
  2. 2014 12 06
  3. 2014 12 07
  4. 2015 12 05
  5. 2015 12 06
  6. 2015 12 07
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. 1
  2. 0
  3. 364
  4. 1
  5. 0
  6. 365
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.