73 lines
1.8 KiB
C
73 lines
1.8 KiB
C
#include <stdio.h>
|
|
#include <string.h>
|
|
|
|
// 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;
|
|
} |