
Willkommen in Kapitel 2! Heute machen wir Mathematik mit C. Klingt einfach – aber es gibt Tücken: Was passiert bei 7 / 2? Und was ist überhaupt Modulo? Das und mehr lernst du heute! 🧮
🔢 Die fünf Grundoperatoren
In C gibt es fünf arithmetische Operatoren. Vier davon kennst du aus der Schule – der fünfte, Modulo, ist neu und sehr nützlich:
⚠️ Ganzzahldivision – die große Falle
Wenn du zwei int-Werte dividierst, schneidet C die Nachkommastellen einfach ab – es wird nicht gerundet!
❌ Ganzzahldivision (int / int)
7 / 2 ergibt 3 – nicht 3.5!
1 / 4 ergibt 0 – nicht 0.25!
Die Nachkommastellen werden abgeschnitten.
✅ Kommazahldivision (float)
7.0f / 2 ergibt 3.5
7 / 2.0f ergibt 3.5
Ein Operand als float reicht!
🔄 Modulo – der Rest der Division
Der %-Operator gibt den Rest einer Ganzzahldivision zurück. Er funktioniert nur mit int-Werten.
| Ausdruck | Ergebnis | Anwendung |
|---|---|---|
| 10 % 3 | 1 | Prüfen ob teilbar: wenn 0 → teilbar |
| 7 % 2 | 1 | Gerade/Ungerade: wenn 0 → gerade |
| 15 % 5 | 0 | 15 ist durch 5 teilbar! |
| 60 % 60 | 0 | Stunden: Sekunden → Minuten umrechnen |
| 235 % 100 | 35 | Letzte 2 Ziffern einer Zahl |
📊 Operator-Priorität (Punkt vor Strich)
Wie in der Mathematik gilt: Nicht alle Operatoren sind gleich – manche werden früher berechnet:
⚡ Kurzschreibweisen
| Kurzform | Langform | Bedeutung |
|---|---|---|
| x += 5; | x = x + 5; | x um 5 erhöhen |
| x -= 3; | x = x - 3; | x um 3 verringern |
| x *= 2; | x = x * 2; | x verdoppeln |
| x /= 4; | x = x / 4; | x durch 4 teilen |
| x++; | x = x + 1; | x um 1 erhöhen (Inkrement) |
| x--; | x = x - 1; | x um 1 verringern (Dekrement) |
💻 Vollständiges Beispiel
#include <stdio.h> int main() { int a = 17, b = 5; printf("%d + %d = %d\n", a, b, a + b); printf("%d - %d = %d\n", a, b, a - b); printf("%d * %d = %d\n", a, b, a * b); printf("%d / %d = %d\n", a, b, a / b); // Ganzzahl! printf("%d %% %d = %d\n", a, b, a % b); // Rest printf("%.2f / %d = %.2f\n", (float)a, b, (float)a / b); // Cast return 0; }
17 - 5 = 12
17 * 5 = 85
17 / 5 = 3
17 % 5 = 2
17.00 / 5 = 3.40
✏️ Übungen
Ergebnisse berechnen
Berechne die Ergebnisse von Hand – dann prüfe mit einem C-Programm:
13 / 4= _______13 % 4= _______2 + 3 * 4= _______(2 + 3) * 4= _______100 % 7= _______100 / 7= _______1 / 3= _______1.0f / 3= _______
Modulo-Anwendung
Erkläre mit eigenen Worten, wie du mit Modulo prüfst, ob eine Zahl gerade oder ungerade ist. Schreibe auch den C-Ausdruck dafür:
C-Ausdruck (für Variable x):
Kurzschreibweisen anwenden
Schreibe die Kurzschreibweise für jede Operation (Variable: n):
n = n + 10;→ Kurzform: _______n = n * 3;→ Kurzform: _______n = n - 1;→ Kurzform: _______ oder: _______n = n / 2;→ Kurzform: _______
Minutenrechner
Schreibe ein Programm, das eine Anzahl von Sekunden einliest und diese in Minuten und Sekunden umrechnet. (Tipp: Minuten = Sekunden / 60, Rest = Sekunden % 60)
Integer-Division vs. Float-Division
Führe diesen Code aus und erkläre, warum die beiden Ergebnisse unterschiedlich sind. Ändere dann int zu float und beobachte den Unterschied:
%% in printf gibt ein einzelnes % aus – weil % allein als Format-Zeichen interpretiert wird!BMI-Rechner
Berechne den Body-Mass-Index: BMI = gewicht / (groesse * groesse). Gib den Wert mit 1 Nachkommastelle aus. Teste mit verschiedenen Werten über stdin: