#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; }