diff --git a/08/codeNachricht.c b/08/codeNachricht.c index 34ac242..cebbb9e 100644 --- a/08/codeNachricht.c +++ b/08/codeNachricht.c @@ -37,12 +37,89 @@ #define MAX_SPALTEN 10 int gibZahlEin(int min, int max); +void fuelleTabelleZufall(char tabelle[MAX_ZEILEN][MAX_SPALTEN], unsigned int zeilen, unsigned int spalten); +void fuelleTabelle(char tabelle[MAX_ZEILEN][MAX_SPALTEN], unsigned int zeilen, unsigned int spalten); +void gibTabelleAus(const char tabelle[MAX_ZEILEN][MAX_SPALTEN], unsigned int zeilen, unsigned int spalten); +void gibCodeAus(const char tabelle[MAX_ZEILEN][MAX_SPALTEN], unsigned int zeilen, unsigned int spalten); int main() { + char tabelle[MAX_ZEILEN][MAX_SPALTEN] = {0}; + unsigned int spalten = 0; + unsigned int zeilen = 0; + + srand(time(NULL)); + + printf("Wie viele Zeilen (max. %d): ", MAX_ZEILEN); + zeilen = gibZahlEin(1, MAX_ZEILEN); + + printf("Wie viele Spalten (max. %d): ", MAX_SPALTEN); + spalten = gibZahlEin(1, MAX_SPALTEN); + + fuelleTabelleZufall(tabelle, zeilen, spalten); + + printf("Text: "); + fuelleTabelle(tabelle, zeilen, spalten); + printf("Tabelle:\n"); + gibTabelleAus(tabelle, zeilen, spalten); + printf("Code: "); + gibCodeAus(tabelle, zeilen, spalten); + return 0; } +void fuelleTabelleZufall(char tabelle[MAX_ZEILEN][MAX_SPALTEN], unsigned int zeilen, unsigned int spalten) +{ + for(unsigned int i = 0; i < zeilen; i++) + { + for(unsigned int j = 0; j < spalten; j++) + { + tabelle[i][j] = rand() % ('z' - 'a' + 1) + 'a'; + } + } +} + +void gibCodeAus(const char tabelle[MAX_ZEILEN][MAX_SPALTEN], unsigned int zeilen, unsigned int spalten) +{ + for(unsigned int j = 0; j < spalten; j++) + { + for(unsigned int i = 0; i < zeilen; i++) + { + printf("%c", tabelle[i][j]); + } + } +} + +void fuelleTabelle(char tabelle[MAX_ZEILEN][MAX_SPALTEN], unsigned int zeilen, unsigned int spalten) +{ + char eingabe = '\0'; + + for(unsigned int i = 0; i < zeilen && eingabe != '\n'; i++) + { + for(unsigned int j = 0; j < spalten && eingabe != '\n'; j++) + { + eingabe = getchar(); + + if(eingabe != '\n') + tabelle[i][j] = eingabe; + else + j--; + } + } +} + +void gibTabelleAus(const char tabelle[MAX_ZEILEN][MAX_SPALTEN], unsigned int zeilen, unsigned int spalten) +{ + for(unsigned int i = 0; i < zeilen; i++) + { + for(unsigned int j = 0; j < spalten; j++) + { + printf("%c", tabelle[i][j]); + } + printf("\n"); + } +} + int gibZahlEin(int min, int max) { int zahl, geleseneWerte;