|
Megfelelő tantárgyak
Adott az alábbi struktúra:
struct tantargy{ char kod[16], *nev; int kredit, oraszam; /* mindketto 0 es 100 koze esik */};
letöltés szöveges állományként
Írjon függvényt, amely paraméterként megkapja egy struct tantargy típusú elemeket
tartalmazó kétdimenziós tömb kezdőcímét, sorainak és oszlopainak számát, valamint egy dupla
pontosságú valós számot (s)! A függvény az eredeti tömb megváltoztatása nélkül hozzon
létre egy új egydimenziós tömböt, amely azoknak a tantárgyaknak a nevét tartalmazza csupa
nagybetűssé alakítva, amelyeknél az óraszám és a kreditszám hányadosa
s – 1 és s + 1 közé esik! A tantárgynevek az
eredeti tömb sorfolytonos bejárásának sorrendjében szerepeljenek az új tömbben! A tömb utolsó
elemében NULL pointer szerepeljen, ezzel jelezve a tömb végét! A függvény visszatérési értéke
az új tömb kezdőcíme legyen! Ügyeljen arra, hogy C-ben két egész szám hányadosa egész!
(Segítség: egy karakter nagybetűssé történő konvertálásához lásd a toupper()
függvényt.)
A függvény specifikációja
char **targyak(struct tantargy *, int, int, double);
Megjegyzés
A függvényt helyezze a targyak.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
#include <stdio.h>#include <stdlib.h>struct tantargy{ char kod[16], *nev; int kredit, oraszam;};char **targyak(struct tantargy *, int, int, double);int main(){ struct tantargy tomb[2][2] = { {{"ILBK301", "Magas szintu programozasi nyelvek 1", 5, 40}, {"ILDK301", "Magas szintu programozasi nyelvek 1", 5, 40}}, {{"ILCK411", "Adatszerkezetek es algoritmusok", 4, 16}, {"ILCKA11", "Mikrookonomia", 5, 16}} }; char **uj = targyak(&tomb[0][0], 2, 2, 3.5); char **p; for (p = uj; *p != NULL; ++p) { puts(*p); free(*p); } free(uj); return EXIT_SUCCESS;}
letöltés szöveges állományként
Makefile
SRCS = main.c targyak.cOBJS = $(SRCS:%.c=%.o)TARGETS = main.PHONY: cleanall: $(TARGETS)main: $(OBJS) $(CC) $(OBJS) -o main%.o: %.c $(CC) -Wall -c $< -o $@clean: rm -rf $(OBJS) *~ $(TARGETS)
letöltés szöveges állományként
A példa tesztprogram kimenete
ADATSZERKEZETEK ES ALGORITMUSOKMIKROOKONOMIA
letöltés szöveges állományként
|
|