91 lines
1.6 KiB
C
91 lines
1.6 KiB
C
#include <stdio.h>
|
||
#include <stdlib.h>
|
||
#include <time.h>
|
||
|
||
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<EFBFBD>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<67>nge: %.2lf\n", durchschnitt);
|
||
|
||
free(weglaengen);
|
||
free(haeufigkeit);
|
||
|
||
return 0;
|
||
}
|