#include #include #define MAX_LEN 10 // Eingabe des Wortes kann max. 10 Zeichen lang sein int eingabefarbe() // Liest eine Farbe und gibt eine Zahl zurück --> Gruen 1, Rot 2, Violett 3 { int eingabe_als_zahl = 0; // 0 = noch keine gültige Farbe char *grundfarbe[] = {"Gruen", "Rot", "Violett"}; // Array aus Strings: Erlaubte Farben, die der Benutzer eingeben darf char eingabeFarbe[MAX_LEN]; // Hier wird die Eingabe des Benutzers gespeichert --> 9 Buchstaben und 1 Enterzeichen printf("Geben Sie eine Farbe ein (Gruen, Rot, Violett): "); fgets(eingabeFarbe, MAX_LEN, stdin); // Liest die Eingabe des Benutzers als Text ein und speichert sie in eingabeFarbe if(eingabeFarbe[strlen(eingabeFarbe)-1] == '\n') // Prüft, ob ein Zeilenumbruch da ist und löscht ihn, damit Vergleich der Farben später funktioniert eingabeFarbe[strlen(eingabeFarbe)-1] = '\0'; // \n wird ersetzt mit \0 --> Ende Zeichen for (int i = 0; i < 3; ++i) // Schritt wird 3 mal wiederholt, da drei Farben verfügbar sind { if (strcmp(eingabeFarbe, grundfarbe[i]) == 0) // Vergleicht 2 Texte: Der eingegeben wurde & erlaubte Farbe --> Wenn genau gleich, dann gibt strcmp() den Wert 0 zurück { eingabe_als_zahl = i + 1; // Wir speichern die Farbe als Zahl --> Gruen 1, Rot 2, Violett 3 return eingabe_als_zahl; // Wird zurück an die main gegeben } } return eingabe_als_zahl; // Wenn keine Zahl passt --> Ungültig (0) } int main() { int farbe1, farbe2, posTabelle; // 3 Platzhalter werden definiert; posTabelle = um die Mischfarbe aus Tabelle zu holen char *auswahl[] = {"Gruen", "Gelb", "Blau", "Gelb", "Rot", "Purpur", "Blau", "Purpur", "Violett"}; // 1D-Array: Tabelle mit den Mischfarben, insgesamt 9 zur Auswahl beginnend bei Index 0, also 8 farbe1 = eingabefarbe(); // Farbe 1 wird gespeichert farbe2 = eingabefarbe(); // Farbe 2 wird gespeichert if (farbe1 == 0 || farbe2 == 0) // Wenn eine Farbe ungültig ist, dann brechen wir ab und printen { printf("Ungültige Eingabe"); return 0; } posTabelle = (farbe1 -1) * 3 + farbe2 -1; // Umrechnung von 2D-Tabelle in 1D-Array: farbe1 ist die Zeile und farbe2 ist die Spalte, 3 ist die Anzahl der Spalten pro Zeile printf("Die Mischfarbe ist dann: %s", auswahl[posTabelle]); return 0; }