Zählen
Das zweite Muster zählt: Wie viele Elemente erfüllen eine Bedingung? Es sieht aus wie das Addieren, aber statt des Elements addierst du 1, und nur dann, wenn eine if-Anweisung es erlaubt. Dieses Programm zählt die heißen Tage einer Woche:
int temperaturen[] = {18, 24, 27, 15, 31, 22, 29};
int anzahl = sizeof(temperaturen) / sizeof(temperaturen[0]);
int heisse_tage = 0;
for (int i = 0; i < anzahl; i++) {
if (temperaturen[i] >= 25) {
heisse_tage++;
}
}
printf("Heiße Tage: %d\n", heisse_tage);Das gibt Folgendes aus:
Heiße Tage: 3Der Zähler heisse_tage beginnt vor der Schleife bei 0. Die Schleife sieht sich jede Temperatur an, und die if-Anweisung entscheidet, ob sie mitgezählt wird. heisse_tage++ wird nur für 27, 31 und 29 ausgeführt, am Ende ist der Zähler also 3. Beachte die zwei Paare geschweifter Klammern: heisse_tage++ steht im Block der if-Anweisung, der im Block der Schleife steht. Auch hier gibst du das Ergebnis nach der Schleife aus.
Verwechsle die beiden Zahlen nicht. anzahl ist die Anzahl aller Elemente, 7, und die Schleife braucht sie, um alle durchzugehen. heisse_tage ist die Anzahl der Elemente, die die Bedingung erfüllen, und das ist das Ergebnis.
Die Bedingung kann alles Mögliche über das Element prüfen. Diese Schleife zählt, wie oft ein Würfel eine Sechs gezeigt hat:
int wuerfe[] = {6, 2, 6, 4, 1, 6, 3};
int anzahl = sizeof(wuerfe) / sizeof(wuerfe[0]);
int sechser = 0;
for (int i = 0; i < anzahl; i++) {
if (wuerfe[i] == 6) {
sechser++;
}
}
printf("Sechser: %d\n", sechser);Das gibt Folgendes aus:
Sechser: 3Eine Schleife kann auch mehrere Dinge gleichzeitig zählen, jedes in einem eigenen Zähler. Mit if und else wird jedes Element genau einmal gezählt, entweder im einen oder im anderen Zähler.
So schreibst du es:
Anweisungen
- 1
Das Array
punkteenthält die Punkte aus einem Test. Du bestehst mit 50 Punkten oder mehr. Zähle die Schüler, die bestanden haben: Erstelle eine Variablebestandenmit dem Wert0, gehepunktemit einer Schleife durch und erhöhebestandenbei jeder Punktzahl von mindestens 50 um 1. Gib das Ergebnis nach der Schleife alsBestanden: 5aus. - 2
Zähle in derselben Schleife die Schüler, die durchgefallen sind: Erstelle vor der Schleife eine Variable
durchgefallenmit dem Wert0und erhöhe sie in einemelse-Zweig. Gib nach der Schleife in der nächsten ZeileDurchgefallen: 3aus.