60 lines
1.6 KiB
C
60 lines
1.6 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include "numbers.h"
|
|
|
|
// Einfache Funktion, um zu zählen, wie oft eine Zahl im Array vorkommt
|
|
int countOccurrences(const unsigned int *arr, unsigned int len, unsigned int value) {
|
|
int count = 0;
|
|
for (unsigned int i = 0; i < len; i++) {
|
|
if (arr[i] == value) count++;
|
|
}
|
|
return count;
|
|
}
|
|
|
|
// Testfunktion für createNumbers und getDuplicate
|
|
void testNumbers(unsigned int len) {
|
|
printf("Teste mit Laenge %u:\n", len);
|
|
|
|
// Erstelle Zahlenarray
|
|
unsigned int *numbers = createNumbers(len);
|
|
if (numbers == NULL) {
|
|
printf("Fehler: Konnte Array nicht erstellen.\n");
|
|
return;
|
|
}
|
|
|
|
// Gib Array aus
|
|
printf("Generierte Zahlen: ");
|
|
for (unsigned int i = 0; i < len; i++) {
|
|
printf("%u ", numbers[i]);
|
|
}
|
|
printf("\n");
|
|
|
|
// Finde Duplikat
|
|
unsigned int duplicate = getDuplicate(numbers, len);
|
|
printf("Gefundenes Duplikat: %u\n", duplicate);
|
|
|
|
// Überprüfe, ob es genau zweimal vorkommt
|
|
int occ = countOccurrences(numbers, len, duplicate);
|
|
if (occ == 2) {
|
|
printf("Korrekte Überprüfung: %u kommt genau zweimal vor.\n", duplicate);
|
|
} else {
|
|
printf("Fehler: %u kommt %d mal vor (sollte 2 sein).\n", duplicate, occ);
|
|
}
|
|
|
|
// Speicher freigeben
|
|
free(numbers);
|
|
printf("\n");
|
|
}
|
|
|
|
int main() {
|
|
printf("Testprogramm für numbers.c\n");
|
|
printf("=========================\n\n");
|
|
|
|
// Teste mit verschiedenen Längen
|
|
testNumbers(5);
|
|
testNumbers(10);
|
|
testNumbers(20);
|
|
|
|
printf("Tests abgeschlossen.\n");
|
|
return 0;
|
|
} |