Ausgabe des Ergebnisses
In diesem Schritt erweitern wir unser Permutationsberechnungsprogramm um detailliertere Ausgabe- und Formatierungsoptionen.
Ändern wir die Datei permutations.c
, um die Ergebnisdarstellung zu verbessern:
cd ~/project
nano permutations.c
Aktualisieren wir den Code mit einer verbesserten Ergebnisanzeige:
#include <stdio.h>
// Funktion zur Fakultätsberechnung
unsigned long long factorial(int num) {
unsigned long long result = 1;
for (int i = 1; i <= num; i++) {
result *= i;
}
return result;
}
// Funktion zur Permutationsberechnung (nPr)
unsigned long long permutation(int n, int r) {
// Überprüfung der Eingabe auf Gültigkeit
if (r > n) {
printf("Fehler: r darf nicht größer als n sein\n");
return 0;
}
// Berechnung von nPr nach der Formel: n! / (n-r)!
return factorial(n) / factorial(n - r);
}
// Funktion zum Drucken detaillierter Permutationsinformationen
void printPermutationDetails(int n, int r, unsigned long long result) {
printf("\n--- Details zur Permutationsberechnung ---\n");
printf("Gesamtzahl der Elemente (n): %d\n", n);
printf("Anzahl der ausgewählten Elemente (r): %d\n", r);
printf("Berechnung: %d P %d = %d! / (%d - %d)!\n", n, r, n, n, r);
printf("Ergebnis: %llu verschiedene Anordnungen möglich\n", result);
printf("----------------------------------------\n");
}
int main() {
int n, r;
printf("Permutationsrechner (nPr)\n");
printf("Geben Sie die Gesamtzahl der Elemente (n) ein: ");
scanf("%d", &n);
printf("Geben Sie die Anzahl der auszuwählenden Elemente (r) ein: ");
scanf("%d", &r);
unsigned long long result = permutation(n, r);
if (result > 0) {
printPermutationDetails(n, r, result);
}
return 0;
}
Kompilieren und ausführen des Programms:
gcc permutations.c -o permutations
./permutations
Beispielausgabe:
Permutationsrechner (nPr)
Geben Sie die Gesamtzahl der Elemente (n) ein: 5
Geben Sie die Anzahl der auszuwählenden Elemente (r) ein: 3
--- Details zur Permutationsberechnung ---
Gesamtzahl der Elemente (n): 5
Anzahl der ausgewählten Elemente (r): 3
Berechnung: 5 P 3 = 5! / (5 - 3)!
Ergebnis: 60 verschiedene Anordnungen möglich
----------------------------------------
Verbesserungen:
- Hinzufügen einer dedizierten Funktion
printPermutationDetails()
- Umfangreichere Ausgabe zur Berechnung
- Erklärung der Permutationsformel und des Ergebnisses
- Verbesserte Benutzeroberfläche mit Titel und detaillierter Erklärung