#include <stdio.h>
// Definition von Aufzählungstypen (enum) für Laugen und Säuren
typedef enum { NATRIUMLAUGE, KALILAUGE, KALKWASSER, ANZ_LAUGEN } Lauge;
typedef enum { SALZSAEURE, SCHWEFELSAEURE, SALPETERSAEURE, KOHLENSAEURE, ANZ_SAEUREN } Saeure;
// Tabelle der Namen (für Anzeige)
const char* laugen_namen[ANZ_LAUGEN] = {
    "Natronlauge", "Kalilauge", "Kalkwasser"
 };
const char* saeure_namen[ANZ_SAEUREN] = {
    "Salzsäure", "Schwefelsäure", "Salpetersäure", "Kohlensäure"
 };
// Produktmatrix: Salze für Kombinationen von Lauge x Säure
const char* produkte[ANZ_LAUGEN][ANZ_SAEUREN] = {
    // Natronlauge
    { "Natriumchlorid", "Natriumsulfat", "Natriumnitrat", "Natriumcarbonat" },
    // Kalilauge
    { "Kaliumchlorid", "Kaliumsulfat", "Kaliumnitrat", "Kaliumcarbonat" },
    // Kalkwasser
    { "Calciumchlorid", "Calciumsulfat", "Calciumnitrat", "Calciumcarbonat" }
};
int main() {
    // Überschrift ausgeben
    printf("              |");
    for (int s = 0; s < ANZ_SAEUREN; s++) {
        printf(" %-16s |", saeure_namen[s]); // Spaltenköpfe für Säuren
    }
    printf("\n");
    // Tabelle ausgeben
    for (int l = 0; l < ANZ_LAUGEN; l++) {
        printf("%-14s |", laugen_namen[l]); // Zeilenköpfe für Laugen
        for (int s = 0; s < ANZ_SAEUREN; s++) {
            printf(" %-16s |", produkte[l][s]); // Reaktionsprodukte
        }
        printf("\n");
    }
    return 0;
}