|
Méretezés
Adott a következő fejlécállomány:
myheader.h
#ifndef _MYHEADER_H#define _MYHEADER_H 1int foo(const void *, const void *);#endif /* myheader.h */
letöltés szöveges állományként
Írja meg a myheader.h állományban deklarált foo() függvényt, amely
sztringként megadott hosszúságadatok összehasonlítását végzi el! A hosszúságadatok alakja a
következő:
mennyiség mértékegység
A mennyiség egy pozitív egész szám. A mértékegységet, amely a „mm”,
„cm”, „dm”, „m” és „km” karaktersorozatok
egyike lehet, a mennyiségtől pontosan egy szóköz karakter választja el (például „1
km”, „999 m”, „10 cm”). A függvény által kezelendő legkisebb
hossz 1 mm, a legnagyobb 1000 km.
A foo() függvényt úgy írja meg, hogy ha az első paramétereként megkapott hossz
kisebb a második paramétereként megkapottnál, akkor negatív értéket, ha az első
paramétereként megkapott hossz nagyobb a második paramétereként megkapottnál, akkor pozitív
értéket, egyébként pedig 0-t adjon vissza! A függvény a paramétereként megkapott sztringek
tartalmát ne módosítsa! A feladat megoldása során tartsa szem előtt, hogy 1 cm = 10 mm, 1 dm
= 10 cm, 1 m = 10 dm, 1 km = 1000 m!
Megjegyzés
A függvényt helyezze a foo.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
#include <stdio.h>#include <stdlib.h>#include "myheader.h"int main(){ char dist[][30] = {"1 km", "999 m", "10 cm"}; int i; qsort(&dist[0][0], 3, sizeof(char [30]), foo); for (i = 0; i < 3; ++i) puts(dist[i]); return EXIT_SUCCESS;}
letöltés szöveges állományként
Makefile
SRCS = main.c foo.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
10 cm999 m1 km
letöltés szöveges állományként
|
|