Programozó versenyek

Levelező Magas szintű programozási nyelvek 1 beugró, 2017. május 27.

2017. május 27. 13:10 – 2017. május 27. 16:10

Tantárgy sztringként

Adott az alábbi struktúra:

  1. struct tantargy
  2. {
  3.   char kod[16], *nev;
  4.   int kredit, oraszam; /* mindketto 0 es 100 koze esik */
  5. };
letöltés szöveges állományként

Írjon konverziós függvényt, amely paraméterként megkap egy struct tantargy típusú struktúrát, és visszaadja annak a sztring megfelelőjét! A sztring elején a tantárgy neve, majd egy szóközt követően zárójelben a kódja, a kreditszáma és az óraszáma szerepeljen egy-egy vesszővel elválasztva! (Segítség: egy sztringbe történő formázott íráshoz lásd az sprintf() függvényt.)

A függvény specifikációja

char *to_string(struct tantargy);

Megjegyzés

A függvényt helyezze a to_string.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. struct tantargy
  4. {
  5.   char kod[16], *nev;
  6.   int kredit, oraszam;
  7. };
  8. char *to_string(struct tantargy);
  9. int main()
  10. {
  11.   struct tantargy tomb[] = {
  12.     {"ILBK301", "Magas szintu programozasi nyelvek 1", 5, 40},
  13.     {"ILDK301", "Magas szintu programozasi nyelvek 1", 5, 40},
  14.     {"ILCK411", "Adatszerkezetek es algoritmusok", 4, 16}
  15.   };
  16.   int i;
  17.   for (i = 0; i < 3; ++i)
  18.   {
  19.     char *s = to_string(tomb[i]);
  20.     puts(s);
  21.     free(s);
  22.   }
  23.   return EXIT_SUCCESS;
  24. }
letöltés szöveges állományként

Makefile

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

A példa tesztprogram kimenete

  1. Magas szintu programozasi nyelvek 1 (ILBK301,5,40)
  2. Magas szintu programozasi nyelvek 1 (ILDK301,5,40)
  3. Adatszerkezetek es algoritmusok (ILCK411,4,16)
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.