diff --git a/25.5.1.c b/25.5.1.c new file mode 100644 index 0000000..f7bb840 --- /dev/null +++ b/25.5.1.c @@ -0,0 +1,90 @@ +#include +#include +#include + +int kaeferIrrfahrt() { + int a = 0; + int strecke = 0; + + while (a != 3) { + + if (a == 0) { + a++; + strecke++; + } + + if (a == 1) { + int zuf = rand() % 3 + 1; + + if (zuf > 1) { + a++; + strecke++; + } + else { + a--; + strecke++; + } + } + + if (a == 2) { + int zuf = rand() % 3 + 1; + + if (zuf < 3) { + a--; + strecke++; + } + else { + a++; + strecke++; + } + } + } + return strecke; +} + +int main() { + int fahrt; + printf("Geben Sie die Anzahl der Irrfahrten ein: "); + scanf("%d", &fahrt); + + srand(time(NULL)); + + int *weglaengen = (int *)malloc(fahrt * sizeof(int)); + + int n; + for (n = 0; n < fahrt; n++) { + weglaengen[n] = kaeferIrrfahrt(); + } + + + int maxWeglange = fahrt*100; + int *haeufigkeit = (int *)calloc(maxWeglange , sizeof(int)); + + int i; + for (i = 0; i < fahrt; i++) { + haeufigkeit[weglaengen[i]]++; + } + + + printf("Wegl�nge H�ufigkeit\n"); + int p; + for (p = 0; p <= maxWeglange; i++) { + if (haeufigkeit[p] > 0) { + printf("%9d %9d\n", p, haeufigkeit[p]); + } + } + + + int summe = 0; + int k; + for ( k = 0; k < fahrt; k++) { + summe += weglaengen[k]; + } + double durchschnitt = (double)summe / fahrt; + printf("Durchschnittliche Wegl�nge: %.2lf\n", durchschnitt); + + free(weglaengen); + free(haeufigkeit); + + return 0; +}