#include #include // Aufzählung der Säuren typedef enum { Salzsaure, Schwefelsaure, Salpetersaure, Kohlensaure } Saeure; // Aufzählung der Laugen typedef enum { Natronlauge, Kalilauge, Kalkwasser } Lauge; // Namen der Säuren für die Ausgabe char *Saeuren[] = {"Salzsäure", "Schwefelsäure", "Salpetersäure", "Kohlensäure"}; // Namen der Laugen für die Ausgabe char *Laugen[] = {"Natronlauge", "Kalilauge", "Kalkwasser"}; // Ergebnisse der Reaktionen (Laugen x Säuren = 3 x 4 = 12 Einträge) char *Ausgabe[] = { " Natriumchlorid", " Natriumsulfat", " Natriumnitrat", " Natriumcarbonat", " Kaliumchlorid", " Kaliumsulfat", " Kaliumnitrat", " Kaliumcarbonat", " Calciumchlorid", " Calciumsulfat", " Calciumnitrat", " Calciumcarbonat" }; int main() { Saeure b; Lauge a; // Tabellenkopf: Säuren als Spaltenüberschriften printf("\t \t"); printf("|| "); for (b = Salzsaure; b < Kohlensaure; b++) { printf(" %s", Saeuren[b]); // Säurename ausgeben printf("\t"); printf("|"); } printf(" %s |", Saeuren[3]); // Letzte Säure extra ausgeben (weil Schleife nur bis <) printf("\n"); // Trennlinie unter dem Kopf printf("---------------------------------------------------------------------------------|"); // Für jede Lauge (Zeilen) for (a = Natronlauge; a <= Kalkwasser; ++a) { printf("\n"); printf("%s\t||", Laugen[a]); // Laugenname links am Rand // Für jede Säure (Spalten) for (b = Salzsaure; b <= Kohlensaure; ++b) { // Index berechnen: (Lauge * 4) + Säure // 4 Säuren pro Lauge = 4 Spalten pro Zeile printf(Ausgabe[b + a * 4]); // Reaktionsprodukt ausgeben printf("| "); } printf("\n"); } return 0; }