Add 2d-array exercises.

This commit is contained in:
paulusja 2026-06-11 12:11:19 +02:00
parent 73115eadf1
commit d40842b161
3 changed files with 144 additions and 0 deletions

65
08/codeNachricht.c Normal file
View File

@ -0,0 +1,65 @@
/**************************************************************************************************************
* Schreiben Sie ein Programm, das einen Text einliest, diesen dabei zeilenweise in einer Tabelle speichert *
* und anschließend codiert ausgibt, indem es ihn spaltenweise ausliest. Die Zeilen- und Spaltenzahlen sind *
* vom Benutzer festzulegen. Überschüssige Zeichen in der Tabelle werden zufällig mit Kleinbuchstaben belegt. *
* Überlegen Sie sich, wie Sie einen codierten Text decodieren könnten, wenn Sie die Zeilen- und Spaltenzahl *
* der Codierung kennen. *
* *
* 1. Hinweis: *
* Die Aufgabe ist ohne scanf und Strings zu lösen. *
* *
* 2. Hinweis: *
* Im untenstehenden Beispiel wird der Text "Das ist ein Text." folgendermaßen in einer Tabelle mit vier *
* Zeilen und fünf Spalten abgelegt: *
* |D|a|s| |i| *
* |s|t| |e|i| *
* |n| |T|e|x| *
* |t|.|?|?|?| *
* *
* Die Stellen mit Fragezeichen sind überschüssig und werden mit zufälligen Kleinbuchstaben belegt. *
* *
* Beispielhafter Ablauf: *
* *
* Die maximale Laenge der Nachricht ergibt sich aus dem Produkt der beiden Codes. *
* *
* >> Geben Sie die Anzahl an Zeilen ein: 4 *
* >> Geben Sie die Anzahl an Spalten ein: 5 *
* >> Geben Sie Ihren Text ein (max. 20 Zeichen): Das ist ein Text. *
* Der umgeformte Text lautet: Dsntat .s Tr eekiixq *
* *
**************************************************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_ZEILEN 10
#define MAX_SPALTEN 10
int gibZahlEin(int min, int max);
int main()
{
return 0;
}
int gibZahlEin(int min, int max)
{
int zahl, geleseneWerte;
do
{
geleseneWerte = scanf("%d", &zahl);
while(getchar() != '\n') {}
if(geleseneWerte != 1)
printf("Keine Zahl! Erneute Eingabe: ");
else if(zahl < min)
printf("Zahl zu klein! Erneute Eingabe: ");
else if(zahl > max)
printf("Zahl zu gross! Erneute Eingabe: ");
} while(geleseneWerte != 1 || zahl < min || zahl > max);
return zahl;
}

60
08/noten.c Normal file
View File

@ -0,0 +1,60 @@
/**********************************************
* Schreiben Sie ein Programm, das die Anzahl *
* an Studierenden und Fächern erfragt, *
* entsprechend viele Noten einliest und am *
* Ende die Noten samt Durchschnitt ausgibt. *
* *
* Beispiel: *
* *
* >> Wie viele Studis (max. 20)? 4 *
* >> Wie viele Faecher (max. 10)? 3 *
* >> 1. Studi, 1. Fach: 1.0 *
* >> 1. Studi, 2. Fach: 1.3 *
* >> 1. Studi, 3. Fach: 1.7 *
* >> 2. Studi, 1. Fach: 3.0 *
* >> 2. Studi, 2. Fach: 3.3 *
* >> 2. Studi, 3. Fach: 1.3 *
* >> 3. Studi, 1. Fach: 5.0 *
* >> 3. Studi, 2. Fach: 4.0 *
* >> 3. Studi, 3. Fach: 1.7 *
* >> 4. Studi, 1. Fach: 2.7 *
* >> 4. Studi, 2. Fach: 2.3 *
* >> 4. Studi, 3. Fach: 1.0 *
* *
* Noten: *
* 1. Studi: 1.0 1.3 1.7 -> 1.33 *
* 2. Studi: 3.0 3.3 1.3 -> 2.53 *
* 3. Studi: 5.0 4.0 1.7 -> 3.57 *
* 4. Studi: 2.7 2.3 1.0 -> 2.00 *
* *
**********************************************/
#include <stdio.h>
#define MAX_STUDIS 20
#define MAX_FAECHER 10
int gibGanzeZahlEin(int min, int max);
int main()
{
return 0;
}
int gibGanzeZahlEin(int min, int max)
{
int zahl, geleseneWerte;
do
{
geleseneWerte = scanf("%d", &zahl);
while(getchar() != '\n') {}
if(geleseneWerte != 1 || zahl < min || zahl > max)
printf("Fehler! Erneute Eingabe: ");
} while(geleseneWerte != 1 || zahl < min || zahl > max);
return zahl;
}

19
08/sortiereMatrix.c Normal file
View File

@ -0,0 +1,19 @@
/*******************************************************************************
* Schreiben Sie ein Programm, das eine quadratische Zufallsmatrix mit Werten
* zwischen 1 und 100 erstellt und diese zunächst zeilenweise und anschließend
* spaltenweise aufsteigend sortiert. Nutzen Sie für die Sortierung Ihre
* SelectionSort-Implementierung aus den letzten Übungen.
*******************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ZEILEN 10
#define SPALTEN 10
int main()
{
return 0;
}