Add exercises generated by gemini.

This commit is contained in:
paulusja 2026-04-30 13:47:21 +02:00
parent 038266bd66
commit 3d4623e808
2 changed files with 151 additions and 0 deletions

66
05/geminiAufgabe1.c Normal file
View 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
View 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;
}