Programozó versenyek

Magas szintű programozási nyelvek 1, 2015. április 14., K16 ZH

2015. április 14. 16:05 – 2015. április 14. 17:45

Előzni tilos!

Írjon egy olyan C függvényt, amely paraméterként megkap egy sztringet, továbbá két karaktert! A függvény döntse el, hogy az első karakter összes előfordulása megelőzi-e a második karakter összes előfordulását a sztringben, és igaz értékkel térjen vissza, ha így lenne, hamissal, ha nem! Ha a megadott két karakter közül valamelyik nem szerepelne a sztringben, akkor a függvény igaz értéket adjon vissza! A függvény specifikációja a következő:

A függvény specifikációja

int all_before(char *, char, char);

Megjegyzés

A függvényt helyezze az all_before.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. #include <string.h>
  4. int main()
  5. {
  6.   char line[200];
  7.   int all_before(char *, char, char);
  8.   while (gets(line) != NULL)
  9.   {
  10.     char a, b, str[200];
  11.     int res;
  12.     strcpy(str, line);
  13.     gets(line);
  14.     a = line[0];
  15.     b = line[2];
  16.     res = all_before(str, a, b);
  17.     puts(res ? "YES" : "NO");
  18.   }
  19.   return EXIT_SUCCESS;
  20. }
letöltés szöveges állományként

Makefile

  1. CC = gcc
  2. OBJS = main.o all_before.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. all_before.o: all_before.c
  10. $(CC) -c all_before.c
  11. clean:
  12. rm -rf $(OBJS) *~ $(TARGETS)
letöltés szöveges állományként

Példa bemenet

  1. abrakadabra
  2. a b
  3. abrakadabra
  4. k d
  5. abrakadabra
  6. d k
  7. abrakadabra
  8. c a
  9. abrakadabra
  10. a c
  11. abrakadabra
  12. c e
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

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