Info2/25.5.1.c
2025-04-23 18:41:52 +02:00

91 lines
1.6 KiB
C
Raw Blame History

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