|
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.c OBJS = $(SRCS:%.c=%.o) TARGETS = main
.PHONY: clean
all: $(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 ALGORITMUSOK MIKROOKONOMIA
letöltés szöveges állományként
|
|