Add exercises generated by gemini.
This commit is contained in:
parent
038266bd66
commit
3d4623e808
66
05/geminiAufgabe1.c
Normal file
66
05/geminiAufgabe1.c
Normal file
@ -0,0 +1,66 @@
|
||||
/*Die Aufgabe: "Zahlen-Jongleur"
|
||||
|
||||
Schreibe ein Programm, das eine vom Benutzer festgelegte Anzahl an Zufallszahlen generiert. Das Programm soll für jede Zahl entscheiden, ob sie gerade oder ungerade ist, und am Ende einige statistische Werte ausgeben.
|
||||
|
||||
Anforderungen:
|
||||
|
||||
Erstelle eine Funktion analysiereZahlen(int anzahl).
|
||||
|
||||
Diese Funktion soll anzahl Zufallszahlen im Bereich von 1 bis 100 generieren.
|
||||
|
||||
Für jede generierte Zahl soll auf der Konsole ausgegeben werden, ob sie gerade oder ungrade ist.
|
||||
|
||||
Am Ende der Funktion sollen die Summe aller generierten Zahlen sowie der Durchschnitt (als Fließkommazahl) ausgegeben werden.
|
||||
|
||||
Verwende rand() zur Erzeugung der Zahlen und den Modulo-Operator % zur Prüfung der Parität.
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
|
||||
// --- HIER die Funktion analysiereZahlen ergänzen ---
|
||||
void analysiereZahlen(int anzahl);
|
||||
|
||||
// --------------------------------------------------
|
||||
|
||||
int main() {
|
||||
int menge;
|
||||
|
||||
// Initialisierung des Zufallszahlengenerators mit der aktuellen Zeit
|
||||
srand((unsigned int)time(NULL));
|
||||
|
||||
printf("Wie viele Zufallszahlen sollen generiert werden? ");
|
||||
if (scanf("%d", &menge) != 1 || menge <= 0) {
|
||||
printf("Bitte gib eine positive Ganzzahl ein.\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
printf("\nStarte Analyse von %d Zahlen:\n", menge);
|
||||
printf("------------------------------------\n");
|
||||
|
||||
analysiereZahlen(menge);
|
||||
|
||||
printf("------------------------------------\n");
|
||||
printf("Analyse beendet.\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void analysiereZahlen(int anzahl)
|
||||
{
|
||||
unsigned int summe = 0;
|
||||
|
||||
for(int i = 0; i < anzahl; i++)
|
||||
{
|
||||
unsigned int zufallszahl = rand() % 100 + 1;
|
||||
|
||||
if(zufallszahl % 2 == 0)
|
||||
printf("Die Zahl %d ist gerade.\n", zufallszahl);
|
||||
else
|
||||
printf("Die Zahl %d ist ungerade.\n", zufallszahl);
|
||||
|
||||
summe += zufallszahl;
|
||||
}
|
||||
|
||||
printf("Durchschnitt: %lf.\n", (double)summe / anzahl);
|
||||
}
|
||||
85
05/geminiAufgabe2.c
Normal file
85
05/geminiAufgabe2.c
Normal file
@ -0,0 +1,85 @@
|
||||
/*
|
||||
Die Aufgabe: „Der statistische Würfel-Check“
|
||||
|
||||
Stell dir vor, du möchtest prüfen, wie „fair“ ein virtueller Würfel ist. Da wir keine Arrays nutzen dürfen, konzentrieren wir uns auf ein bestimmtes Ziel: Wir wollen zählen, wie oft eine vom Benutzer gewählte Glückszahl hintereinander gewürfelt wird (Streak).
|
||||
Deine Mission:
|
||||
|
||||
Implementiere die Funktion simulateDiceStreaks. Diese soll:
|
||||
|
||||
In einer Schleife so viele Zufallszahlen (zwischen 1 und 6) generieren, wie der Parameter trials angibt.
|
||||
|
||||
Prüfen, ob die gewürfelte Zahl der luckyNumber entspricht.
|
||||
|
||||
Die längste Folge (Streak) ermitteln, in der die luckyNumber direkt hintereinander erschienen ist.
|
||||
|
||||
Diesen Maximalwert am Ende zurückgeben.
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
|
||||
// --- DEINE FUNKTION HIER ERGÄNZEN ---
|
||||
// Funktionsname: simulateDiceStreaks
|
||||
// Parameter: int trials (Anzahl Würfe), int luckyNumber (Zahl 1-6)
|
||||
// Rückgabewert: int (die längste Serie der luckyNumber)
|
||||
|
||||
unsigned int simulateDiceStreaks(unsigned int trials, int luckyNumber);
|
||||
unsigned int rollDice();
|
||||
|
||||
// ------------------------------------
|
||||
|
||||
int main() {
|
||||
int trials = 1000;
|
||||
int luckyNumber;
|
||||
int longestStreak;
|
||||
|
||||
// Seed für den Zufallszahlengenerator setzen
|
||||
srand((unsigned int)time(NULL));
|
||||
|
||||
printf("Willkommen beim Würfel-Statistik-Tool!\n");
|
||||
printf("Welche Zahl (1-6) ist deine Glückszahl? ");
|
||||
scanf("%d", &luckyNumber);
|
||||
|
||||
if (luckyNumber < 1 || luckyNumber > 6) {
|
||||
printf("Ungültige Eingabe. Bitte eine Zahl zwischen 1 und 6 wählen.\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
printf("Simuliere %d Würfe...\n", trials);
|
||||
|
||||
// Funktionsaufruf
|
||||
longestStreak = simulateDiceStreaks(trials, luckyNumber);
|
||||
|
||||
printf("\nErgebnis:\n");
|
||||
printf("Deine Glückszahl %d erschien maximal %d Mal direkt hintereinander.\n",
|
||||
luckyNumber, longestStreak);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned int simulateDiceStreaks(unsigned int trials, int luckyNumber)
|
||||
{
|
||||
unsigned int highestStreak = 0;
|
||||
unsigned int currentStreak = 0;
|
||||
|
||||
for(int i = 0; i < trials; i++)
|
||||
{
|
||||
unsigned int randNumber = rollDice();
|
||||
|
||||
if(randNumber == luckyNumber)
|
||||
currentStreak++;
|
||||
else
|
||||
{
|
||||
if(currentStreak > highestStreak)
|
||||
highestStreak = currentStreak;
|
||||
currentStreak = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return highestStreak;
|
||||
}
|
||||
|
||||
unsigned int rollDice()
|
||||
{
|
||||
return rand() % 6 + 1;
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user