In diesem Labor werden Sie:
Schreiben Sie ein Programm, das zwei int-Variablen hat und deren Werte tauscht.
Um zwei Werte zu tauschen, brauchen wir eine temporäre Variable:
a = 5 und b = 10#include <stdio.h> int main() { int a = 5; int b = 10; printf("Vor dem Tausch: a = %d, b = %d\n", a, b); // Swap-Algorithmus int temp = a; // Schritt 1: a speichern a = b; // Schritt 2: b nach a b = temp; // Schritt 3: altes a nach b printf("Nach dem Tausch: a = %d, b = %d\n", a, b); return 0; }
Erstellen Sie ein Array mit 5 Zahlen und tauschen Sie das erste und letzte Element.
{10, 20, 30, 40, 50}zahlen[0] und zahlen[4]#include <stdio.h> int main() { int zahlen[5] = {10, 20, 30, 40, 50}; // Vorher ausgeben printf("Vorher: "); for (int i = 0; i < 5; i++) { printf("%d ", zahlen[i]); } printf("\n"); // Swap: erstes und letztes Element int temp = zahlen[0]; zahlen[0] = zahlen[4]; zahlen[4] = temp; // Nachher ausgeben printf("Nachher: "); for (int i = 0; i < 5; i++) { printf("%d ", zahlen[i]); } printf("\n"); return 0; }
Finden Sie das Maximum in einem Array mit 6 Zahlen.
Idee: Wir nehmen das erste Element als "bisher größtes" und vergleichen mit allen anderen.
{34, 78, 12, 89, 45, 23}#include <stdio.h> int main() { int zahlen[6] = {34, 78, 12, 89, 45, 23}; int n = 6; // Array ausgeben printf("Array: "); for (int i = 0; i < n; i++) { printf("%d ", zahlen[i]); } printf("\n"); // Maximum finden int max = zahlen[0]; // Start mit erstem Element for (int i = 1; i < n; i++) { if (zahlen[i] > max) { max = zahlen[i]; } } printf("Maximum: %d\n", max); return 0; }
Finden Sie das Minimum in einem Array mit 5 Zahlen.
{45, 12, 67, 8, 34}Der Algorithmus ist fast identisch zum Maximum - nur die Vergleichsrichtung ändert sich (< statt >).
#include <stdio.h> int main() { int zahlen[5] = {45, 12, 67, 8, 34}; int n = 5; // Array ausgeben printf("Array: "); for (int i = 0; i < n; i++) { printf("%d ", zahlen[i]); } printf("\n"); // Minimum finden int min = zahlen[0]; // Start mit erstem Element for (int i = 1; i < n; i++) { if (zahlen[i] < min) { // Kleiner als bisheriges Minimum? min = zahlen[i]; } } printf("Minimum: %d\n", min); return 0; }
Finden Sie nicht nur das Maximum, sondern auch seine Position (Index) im Array.
Zusätzlich zum Wert speichern wir auch den Index, an dem wir das Maximum gefunden haben:
{15, 42, 8, 99, 23, 67}#include <stdio.h> int main() { int zahlen[6] = {15, 42, 8, 99, 23, 67}; int n = 6; // Array ausgeben printf("Array: "); for (int i = 0; i < n; i++) { printf("%d ", zahlen[i]); } printf("\n"); // Maximum und Position finden int maxPos = 0; // Startposition for (int i = 1; i < n; i++) { if (zahlen[i] > zahlen[maxPos]) { maxPos = i; // Neue Position des Maximums } } printf("Maximum: %d an Position %d\n", zahlen[maxPos], maxPos); return 0; }
Berechnen Sie die Summe aller Zahlen in einem Array.
Ein Akkumulator sammelt Werte auf. Für die Summe:
{10, 20, 30, 40, 50}#include <stdio.h> int main() { int zahlen[5] = {10, 20, 30, 40, 50}; int n = 5; // Array ausgeben printf("Array: "); for (int i = 0; i < n; i++) { printf("%d ", zahlen[i]); } printf("\n"); // Summe berechnen int summe = 0; // Startwert 0! for (int i = 0; i < n; i++) { summe += zahlen[i]; } printf("Summe: %d\n", summe); return 0; }
Berechnen Sie den Durchschnitt aller Zahlen in einem Array.
Für einen genauen Durchschnitt müssen wir double verwenden:
{85, 90, 78, 92, 88} (Noten)double#include <stdio.h> int main() { int noten[5] = {85, 90, 78, 92, 88}; int n = 5; // Array ausgeben printf("Noten: "); for (int i = 0; i < n; i++) { printf("%d ", noten[i]); } printf("\n"); // Summe berechnen int summe = 0; for (int i = 0; i < n; i++) { summe += noten[i]; } printf("Summe: %d\n", summe); // Durchschnitt mit double! double durchschnitt = (double)summe / n; printf("Durchschnitt: %.2f\n", durchschnitt); return 0; }
Zählen Sie, wie viele Zahlen in einem Array größer als 50 sind.
Ähnlich wie Summe, aber wir zählen nur bei einer Bedingung:
{23, 67, 45, 89, 12, 78, 34, 91}#include <stdio.h> int main() { int zahlen[8] = {23, 67, 45, 89, 12, 78, 34, 91}; int n = 8; // Array ausgeben printf("Array: "); for (int i = 0; i < n; i++) { printf("%d ", zahlen[i]); } printf("\n"); // Zahlen > 50 zählen int zaehler = 0; for (int i = 0; i < n; i++) { if (zahlen[i] > 50) { zaehler++; } } printf("Zahlen groesser als 50: %d\n", zaehler); return 0; }
Berechnen Sie das Produkt aller Zahlen in einem Array.
Beim Produkt ist der Startwert 1, nicht 0!
{2, 3, 4, 5}#include <stdio.h> int main() { int zahlen[4] = {2, 3, 4, 5}; int n = 4; // Array ausgeben printf("Array: "); for (int i = 0; i < n; i++) { printf("%d ", zahlen[i]); } printf("\n"); // Produkt berechnen int produkt = 1; // Startwert 1! for (int i = 0; i < n; i++) { produkt *= zahlen[i]; } printf("Produkt: %d\n", produkt); return 0; }
Berechnen Sie die Fakultät einer Zahl n (n! = 1 * 2 * 3 * ... * n).
n! (n Fakultät) ist das Produkt aller Zahlen von 1 bis n:
#include <stdio.h> int main() { int n; printf("Geben Sie n ein: "); scanf("%d", &n); // Fakultät berechnen int fakultaet = 1; // Startwert 1 for (int i = 1; i <= n; i++) { fakultaet *= i; } printf("%d! = %d\n", n, fakultaet); return 0; }
| Muster | Startwert | Operation | Anwendung |
|---|---|---|---|
| Swap | temp = a | a=b, b=temp | Werte tauschen |
| Maximum | arr[0] | if (arr[i] > max) | Größten Wert finden |
| Minimum | arr[0] | if (arr[i] < min) | Kleinsten Wert finden |
| Summe | 0 | sum += arr[i] | Alle addieren |
| Zählen | 0 | if (...) count++ | Bedingt zählen |
| Produkt | 1 | prod *= arr[i] | Alle multiplizieren |