Programozó versenyek

Levelező Magas szintű programozási nyelvek 1 beugró, 2015. június 13.

2015. június 13. 13:10 – 2015. június 13. 16:10

Nagy területű országok

Adott az alábbi struktúra:

struct orszag
{
  char *nev;
  int terulet, nepesseg;
};

Írjon eljárást, amely paraméterként megkapja egy struct orszag típusú elemeket tartalmazó egydimenziós tömb kezdőcímét, a tömb elemszámát, valamint egy állománynevet, és kiírja a megadott nevű állományba soronként, a tömbbeli előfordulásuk sorrendjében az átlagosnál nagyobb területű országok nevét és népességét egy szóközzel elválasztva!

Az eljárás specifikációja

void nagy_orszagok(struct orszag [], int, char *);

Megjegyzés

Az eljárást helyezze a nagy_orszagok.c nevű állományba, és ezt az állományt küldje be megoldásként a kiértékelő rendszernek! Megoldását az alábbi állományok 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 orszag
  4. {
  5.   char *nev;
  6.   int terulet, nepesseg;
  7. };
  8. void nagy_orszagok(struct orszag [], int, char *);
  9. int main()
  10. {
  11.   struct orszag t[] = {{"Magyarorszag",                93030,   9893899},
  12.                        {"Amerikai Egyesult Allamok", 9826630, 318697314},
  13.                        {"Nemetorszag",                357023,  80500000},
  14.                        {"Kanada",                    9984670,  35702707},
  15.                        {"Egyesult Kiralysag",         244820,  63705000}};
  16.   FILE *f;
  17.   int c;
  18.   nagy_orszagok(t, 5, "kimenet.txt");
  19.   f = fopen("kimenet.txt", "r");
  20.   while ((c = fgetc(f)) != EOF)
  21.     putchar(c);
  22.   fclose(f);
  23.   return EXIT_SUCCESS;
  24. }
letöltés szöveges állományként

Makefile

  1. SRCS = main.c nagy_orszagok.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. Amerikai Egyesult Allamok 318697314
  2. Kanada 35702707
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.