|
Valódi osztók
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,
amelyet egy olyan tömb elemeinek az összehasonlítására szeretnénk felhasználni, amely
kizárólag egész számokat tartalmaz, és amely paraméterként megkapja az összehasonlítandó két
tömbelem címét (lásd a main.c függvény kódját)!
A függvény negatív értéket adjon vissza, ha az első paraméterével elért egész szám kevesebb
valódi osztóval rendelkezik, mint a második paraméterével elért egész szám, pozitívat, ha
több osztója lenne annál, és 0-t, ha a két szám valódi osztóinak a száma megegyezik
egymással! Egy a számnak b valódi osztója, ha b osztója
a-nak, de b nem egyenlő 1-gyel és nem egyenlő a-val sem.
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(){ int t[] = {4, 6, 30, 2}; int i; qsort(t, 4, sizeof(int), foo); for (i = 0; i < 4; ++i) printf("%d\n", t[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
24630
letöltés szöveges állományként
|
|