Aufgabe: Summe eines int-Arrays berechnen
Schreibe eine Funktion int summe(int arr[], int n), die die Summe der ersten n Elemente berechnet.
Musterlösung: Summe eines int-Arrays berechnen
int summe(int arr[], int n) {
int s = 0;
for (int i = 0; i < n; i++)
s += arr[i];
return s;
}
int main(void) {
int werte[] = {2, 4, 6, 8};
printf("Summe = %d\n", summe(werte, 4));
}
Aufgabe: Anzahl der geraden Zahlen zählen
Schreibe eine Funktion int anzahl_gerade(int arr[], int n), die zählt, wie viele Einträge gerade sind.
Musterlösung: Anzahl der geraden Zahlen zählen
int anzahl_gerade(int arr[], int n) {
int count = 0;
for (int i = 0; i < n; i++)
if (arr[i] % 2 == 0)
count++;
return count;
}
Aufgabe: größtes Element eines Arrays finden
Erstelle eine Funktion int maximum(int arr[], int n).
Musterlösung: größtes Element eines Arrays finden
int maximum(int arr[], int n) {
int max = arr[0];
for (int i = 1; i < n; i++)
if (arr[i] > max)
max = arr[i];
return max;
}
Aufgabe: Array in einer Funktion „nullen“
Schreibe eine Funktion void array_nullen(int arr[], int n), die alle Werte auf 0 setzt.
Musterlösung: Array in einer Funktion „nullen“
void array_nullen(int arr[], int n) {
for (int i = 0; i < n; i++)
arr[i] = 0;
}
Aufgabe: Anzahl eines bestimmten Zeichens zählen
Schreibe eine Funktionint count_char(char text[], char c)
die zählt, wie oft Buchstabe c im String vorkommt.
Musterlösung: Anzahl eines bestimmten Zeichens zählen
int count_char(char text[], char c) {
int i = 0, count = 0;
while (text[i] != '\0') {
if (text[i] == c)
count++;
i++;
}
return count;
}
Aufgabe: String in Großbuchstaben umwandeln
Schreibe eine Funktionvoid to_upper(char text[])
die alle Kleinbuchstaben in Großbuchstaben umwandelt.
Musterlösung: String in Großbuchstaben umwandeln
void to_upper(char text[]) {
int i = 0;
while (text[i] != '\0') {
if (text[i] >= 'a' && text[i] <= 'z')
text[i] = text[i] - ('a' - 'A');
i++;
}
}
Aufgabe: eigenes strlen schreiben
Schreibe eine Funktionint my_strlen(char text[])
die die Länge eines Strings ohne strlen() bestimmt.
Musterlösung: eigenes strlen schreiben
int my_strlen(char text[]) {
int i = 0;
while (text[i] != '\0')
i++;
return i;
}
Aufgabe: String spiegeln (reverse)
Schreibe eine Funktionvoid reverse(char text[])
die den String im selben Array umdreht.
Hinweis: Verwende zwei Indizes: vorne + hinten.
Musterlösung: String spiegeln (reverse)
int my_strlen(char text[]);
void reverse(char text[]) {
int links = 0;
int rechts = my_strlen(text) - 1;
while (links < rechts) {
char temp = text[links];
text[links] = text[rechts];
text[rechts] = temp;
links++;
rechts--;
}
}
Aufgabe: zwei Arrays addieren
Schreibe eine Funktionvoid add_arrays(int a[], int b[], int erg[], int n)
die zwei Arrays Komponentenweise addiert:
erg[i] = a[i] + b[i]
Implementiere außerdem die main-Funktion, sodass Du diese Funktion add_arrays() mit Beispielwerten in Arrays aufrufst.
Musterlösung: zwei Arrays addieren
void add_arrays(int a[], int b[], int erg[], int n) {
for (int i = 0; i < n; i++)
erg[i] = a[i] + b[i];
}
Aufgabe: das längste Wort in einem Array von Strings finden
Gegeben ist ein Array von Strings, z. B.:
char woerter[4][20] = { "Apfel", "Banane", "Kiwi", "Himbeere" };
Schreibe eine Funktionint index_laengstes_wort(char arr[][20], int n)
die den Index des längsten Wortes zurückgibt.
Musterlösung: das längste Wort in einem Array von Strings finden
int my_strlen(char t[]);
int index_laengstes_wort(char arr[][20], int n) {
int max_index = 0;
int max_len = my_strlen(arr[0]);
for (int i = 1; i < n; i++) {
int len = my_strlen(arr[i]);
if (len > max_len) {
max_len = len;
max_index = i;
}
}
return max_index;
}