In diesem Labor vertiefen Sie Ihr Wissen über Variablen, lernen Benutzereingaben mit scanf() und führen realistische Berechnungen durch. Alle Aufgaben bauen auf dem auf, was Sie bereits gelernt haben!
Programme interaktiv machen mit scanf()
Realistische Rechnungen mit verschiedenen Datentypen
int und double richtig einsetzen
Programme debuggen und testen
int und doublescanf() immer & vor den Variablennamen!Ziel: Erstellen Sie einen interaktiven Taschenrechner für die vier Grundrechenarten.
Erstellen Sie eine Datei taschenrechner.c, die:
int zahl1, zahl2;
printf("Erste Zahl eingeben: ");
scanf("%d", &zahl1);
int für ganze Zahlenscanf() nicht vergessen: & vor dem Variablennamen!int ergibt wieder ein int (ohne Nachkommastellen)Erste Zahl eingeben: 20 Zweite Zahl eingeben: 4 === ERGEBNISSE === 20 + 4 = 24 20 - 4 = 16 20 * 4 = 80 20 / 4 = 5
#include <stdio.h>
int main() {
int zahl1, zahl2;
int addition, subtraktion, multiplikation, division;
printf("Erste Zahl eingeben: ");
scanf("%d", &zahl1);
printf("Zweite Zahl eingeben: ");
scanf("%d", &zahl2);
// Berechnungen
addition = zahl1 + zahl2;
subtraktion = zahl1 - zahl2;
multiplikation = zahl1 * zahl2;
division = zahl1 / zahl2;
// Ausgabe
printf("\n=== ERGEBNISSE ===\n");
printf("%d + %d = %d\n", zahl1, zahl2, addition);
printf("%d - %d = %d\n", zahl1, zahl2, subtraktion);
printf("%d * %d = %d\n", zahl1, zahl2, multiplikation);
printf("%d / %d = %d\n", zahl1, zahl2, division);
return 0;
}
Erklärung: Wir lesen zwei Zahlen mit scanf() ein. Das &-Zeichen ist der Adressoperator - er sagt scanf(), wo die Variable im Speicher liegt. Dann führen wir die vier Grundrechenarten durch und speichern die Ergebnisse in eigenen Variablen.
Ziel: Erstellen Sie einen Euro-Dollar-Währungsrechner.
Erstellen Sie eine Datei waehrung.c, die:
double für Geldbeträge (wegen Cent/Nachkommastellen!)scanf() für double: Verwenden Sie %lf (nicht %f!)printf() für double: Verwenden Sie %.2f (2 Nachkommastellen)Euro-Dollar Wechselkurs Rechner ================================ Wechselkurs: 1 Euro = 1.10 Dollar Betrag in Euro eingeben: 50.00 50.00 Euro = 55.00 Dollar
#include <stdio.h>
int main() {
double euro, dollar;
double wechselkurs = 1.10;
printf("Euro-Dollar Wechselkurs Rechner\n");
printf("================================\n");
printf("Wechselkurs: 1 Euro = %.2f Dollar\n\n", wechselkurs);
printf("Betrag in Euro eingeben: ");
scanf("%lf", &euro);
// Umrechnung
dollar = euro * wechselkurs;
// Ausgabe
printf("\n%.2f Euro = %.2f Dollar\n", euro, dollar);
return 0;
}
Erklärung: Bei Geldbeträgen verwenden wir immer double, da wir Cent (Nachkommastellen) brauchen. Wichtig: Bei scanf() für double verwenden wir %lf, bei printf() hingegen %.2f für 2 Nachkommastellen. Der Wechselkurs wird direkt bei der Deklaration initialisiert.
Ziel: Berechnen Sie eine Rechnung inklusive Mehrwertsteuer.
Erstellen Sie eine Datei rechnung.c, die:
=== KASSENBON === Netto-Preis eingeben: 100.00 Netto-Preis: 100.00 Euro MwSt (19%): 19.00 Euro ---------------------------- Brutto-Preis: 119.00 Euro
#include <stdio.h>
int main() {
double netto, mwst, brutto;
double steuersatz = 0.19;
printf("=== KASSENBON ===\n\n");
printf("Netto-Preis eingeben: ");
scanf("%lf", &netto);
// Berechnungen
mwst = netto * steuersatz;
brutto = netto + mwst;
// Ausgabe
printf("\nNetto-Preis: %8.2f Euro\n", netto);
printf("MwSt (19%%): %8.2f Euro\n", mwst);
printf("----------------------------\n");
printf("Brutto-Preis: %8.2f Euro\n", brutto);
return 0;
}
Erklärung: Die MwSt berechnen wir mit netto * 0.19 (19%). Der Brutto-Preis ist die Summe aus Netto und MwSt. Mit %8.2f formatieren wir die Ausgabe rechtsbündig mit 8 Zeichen Breite. Tipp: Um ein %-Zeichen auszugeben, schreiben Sie %%.
Ziel: Erstellen Sie einen Body-Mass-Index Rechner.
Erstellen Sie eine Datei bmi.c, die:
BMI = Gewicht (kg) / (Größe (m))²
Beispiel: 70 kg bei 1.75 m → BMI = 70 / (1.75 × 1.75) = 22.86
double für alle Variablengroesse * groesseBMI-Rechner =========== Gewicht in kg eingeben: 70.0 Größe in Metern eingeben: 1.75 Ihr BMI: 22.86 BMI-Kategorien: < 18.5: Untergewicht 18.5 - 24.9: Normalgewicht 25 - 29.9: Übergewicht >= 30: Adipositas
#include <stdio.h>
int main() {
double gewicht, groesse, bmi;
printf("BMI-Rechner\n");
printf("===========\n\n");
printf("Gewicht in kg eingeben: ");
scanf("%lf", &gewicht);
printf("Größe in Metern eingeben: ");
scanf("%lf", &groesse);
// BMI berechnen
bmi = gewicht / (groesse * groesse);
// Ausgabe
printf("\nIhr BMI: %.2f\n", bmi);
printf("\nBMI-Kategorien:\n");
printf("< 18.5: Untergewicht\n");
printf("18.5 - 24.9: Normalgewicht\n");
printf("25 - 29.9: Übergewicht\n");
printf(">= 30: Adipositas\n");
return 0;
}
Erklärung: Der BMI wird berechnet, indem man das Gewicht durch die Größe im Quadrat teilt. Für "Größe²" schreiben wir groesse * groesse. Alle Variablen sind vom Typ double, da wir mit Kommazahlen arbeiten.
Ziel: Berechnen Sie Tankkosten und Reichweite.
Erstellen Sie eine Datei tankstelle.c, die:
Beispiel: 50 Liter bei 6 l/100km → Reichweite = (50 / 6) × 100 = 833.33 km
Um Nachkommastellen zu erhalten, multiplizieren Sie mit 1.0:
reichweite = 1.0 * liter / verbrauch * 100;
=== TANKSTELLEN-RECHNER === Getankte Liter: 50.0 Preis pro Liter (Euro): 1.65 Durchschnittsverbrauch (l/100km): 6.5 --- ERGEBNIS --- Gesamtkosten: 82.50 Euro Mögliche Reichweite: 769.23 km Bei 6.50 l/100km können Sie mit 50.00 Litern etwa 769 km fahren.
#include <stdio.h>
int main() {
double liter, preisProLiter, gesamtkosten;
double verbrauch, reichweite;
printf("=== TANKSTELLEN-RECHNER ===\n\n");
printf("Getankte Liter: ");
scanf("%lf", &liter);
printf("Preis pro Liter (Euro): ");
scanf("%lf", &preisProLiter);
printf("Durchschnittsverbrauch (l/100km): ");
scanf("%lf", &verbrauch);
// Berechnungen
gesamtkosten = liter * preisProLiter;
reichweite = 1.0 * liter / verbrauch * 100;
// Ausgabe
printf("\n--- ERGEBNIS ---\n");
printf("Gesamtkosten: %.2f Euro\n", gesamtkosten);
printf("Mögliche Reichweite: %.2f km\n", reichweite);
printf("\nBei %.2f l/100km können Sie\n", verbrauch);
printf("mit %.2f Litern etwa %.0f km fahren.\n", liter, reichweite);
return 0;
}
Erklärung: Die Reichweite berechnen wir mit der Formel (Liter / Verbrauch) × 100. Wichtig: Wir multiplizieren mit 1.0, um sicherzustellen, dass das Ergebnis ein double mit Nachkommastellen ist. Mit %.0f geben wir die Reichweite ohne Nachkommastellen aus (gerundet).
scanf() für int und double richtig verwenden%d, %f, %lf und %.2f& bei scanf() nicht mehr// FALSCH:
scanf("%d", anzahl);
// RICHTIG:
scanf("%d", &anzahl);
// FALSCH:
scanf("%f", &preis);
// RICHTIG:
scanf("%lf", &preis);
// FALSCH: double preis = 1,45; // RICHTIG: double preis = 1.45;
// PROBLEM: Ergibt 0 statt 2.5 int ergebnis = 5 / 2; // LÖSUNG: Mit 1.0 multiplizieren double ergebnis = 1.0 * 5 / 2;
Debugging-Tipps:
scanf() das & vergessen?1.0 für double-DivisionSie haben Labor 2 gemeistert! Sie können jetzt:
int und double richtig arbeitenWeiter so! 🚀
Hinweis: Diese Passwörter sind nur für Lehrende bestimmt.
| Aufgabe | Thema | Passwort |
|---|---|---|
| Aufgabe 1 | Taschenrechner | calc |
| Aufgabe 2 | Geldwechsler | money |
| Aufgabe 3 | Einkaufsrechnung | tax |
| Aufgabe 4 | BMI-Rechner | health |
| Aufgabe 5 | Tankstellen-Rechner (BONUS) | fuel |
Prof. Dr. Alexandra Mikityuk
HTW Berlin | Raum 308
Grundlagen der Programmierung | Wintersemester 2025/26