Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Algorithmen

Primzahlen

Finde heraus ob eine Zahl eine Primzahl ist.

int number = 45; // <= Beispielzahl

int isPrime = 0;
int i = 2;
while (i < number / 2) {
    if (number % i == 0) {
        isPrime = 1;
    }
    i++;
}

if (isPrime == 0) {
    /* number ist Primzahl */
} else {
    /* number ist keine Primzahl */
}

Runde eine Kommazahl

Runde eine Kommazahl auf n Stellen.

double number = 3.1455; // <= Beispielzahl
int n = 2;              // <= auf 2 Stellen runden

number *= pow(10, n);  // 314.55
number += 0.5;         // 315.05
number = (int) number; // 315
number /= pow(10, n);  // 3.15

Jede Stelle in einer Zahl besuchen

int number = 651123;

while (number > 0) {
    // die aktuelle Stelle: `number % 10`
    number /= 10;
}

Felder

Jedes Feldelement besuchen

#define SIZE 5
int numbers[SIZE] = {1, 2, 3, 4, 5};

for (int i = 0; i < SIZE; i++) {
    // Aktuelle Stelle: numbers[i]
}
#define SIZE 5
int numbers[SIZE] = {1, 2, 3, 4, 5};

int firstElement = numbers[0];    // {1, 2, 3, 4, 5} -> firstElement = 1
for (int i = 0; i < SIZE; i++) {
    numbers[i] = numbers[i + 1];  // {1, 2, 3, 4, 5} -> {2, 3, 4, 5, _}
}
numbers[SIZE - 1] = firstElement; // {2, 3, 4, 5, _} -> {2, 3, 4, 5, firstElement} -> {2, 3, 4, 5, 1}

Feldinhalt um rechts verschieben

#define SIZE 5
int numbers[SIZE] = {1, 2, 3, 4, 5};

int lastElement = numbers[SIZE - 1]; // {1, 2, 3, 4, 5} -> lastElement = 5
for (int i = SIZE - 1; i > 0; i--) {
    numbers[i] = numbers[i - 1];     // {_, 1, 2, 3, 4}
}
numbers[0] = lastElement;            // {_, 1, 2, 3, 4} -> {lastElement, 1, 2, 3, 4} -> {5, 1, 2, 3, 4}

n Elemente mit n + 1 Elemente austauschen

#define SIZE 5
int numbers[SIZE] = {1, 2, 3, 4, 5};

int n = 2;
for (int i = n - 1; i < SIZE; i += n) {
    int tmp = numbers[i];
    numbers[i] = numbers[i + 1];
    numbers[i + 1] = tmp;
}

Elemente ausgeben + neue Zeile bei n Elemente

#define SIZE 5
int numbers[SIZE] = {1, 2, 3, 4, 5};

int n = 3; // neue Zeile bei jedem dritten Element

for (int i = 0; i < SIZE; i++) {
    if (i % n == 0 && i != 0) {
        printf("\n");
    }
    printf("%d", numbers[i]);
}