Copy C Code & Paste it below the Compiler & Run

21. Operators: logical, increment

#include <stdio.h>
int main() {
  int k = 0;
  printf("%i", k && k++);
  printf("%i", k || k++);
  printf("%i", k || k++);
  printf("%i", k && k++);
}

22. Quicksort

#include <stdio.h>

void print_array(int size, int array[]) {
    for (int pos = 0; pos < size; pos += 1) {
        printf("%d%s", array[pos], pos + 1 == size ? "" : " ");
    }
    printf("\n");
}

void quick_sort (int size, int array[], int left, int right) {
    //! quicksort = showSort(array, cursors=[left, right, i, j], dim=size, thresholds=[pivot])
    if (right <= left)
        return;
    int pivot = array[right];
    int i = left;
    int j = right;
    while (1) {
        while (array[i] < pivot)
            i += 1;
        while (pivot < array[j])
            j -= 1;
        if (i >= j) {
            break;
        }
        int temp = array[i];
        array[i] = array[j];
        array[j] = temp;
        i += 1;
        j -= 1;
    }
    quick_sort(size, array, left, i - 1);
    quick_sort(size, array, i, right);
}

int main() {
    //! quicksort = showSort(array, dim=n)
    int array[] = {4, 2, 1, 2, 3, 2, 1, 0, 1};
    int n = sizeof array / sizeof *array;
    quick_sort(n, array, 0, n - 1);
    print_array(n, array);
    return 0;
}

23. scanf

#include <stdio.h>
int main() {
    int a, n;
    n = scanf("%d", &a);
    return 0;
}

24. scanf %lf %c

#include <stdio.h>
int main() {
    double d;
    char c;
    int r;
    r = scanf("%lf", &d);
    r = scanf("%c", &c);
    printf("|%lf| |%c|", d, c);
    return 0;
}

25. Structure

struct point {
  int x;
  int y;
};
int main() {
  struct point p, *q = &p;
  int * r;
  p.x = 1;
  q->y = 2;
  r = &p.x;
  *r = 3;
  r = &q->y;
  *r = 4;
  return p.x + p.y;
}

26. Structure and function pointer

struct serial_s {
    int (*available)(void);
};
int Serial_available(void) {
    return 42;
}
int main() {
    //! showMemory()
    struct serial_s Serial;
    Serial.available = Serial_available;
    Serial.available();
    return 0;
}

27. Variables and pointers

#include <stdio.h>
int main() {
  int i = 0, j = 1, *k = &j;
  *k = 3;
  printf("i = %i, j = %i\n", i, j);
  {
    int i = 1;
    j = 2;
    printf("i = %i, j = %i\n", i, j);
  }
  printf("i = %i, j = %i\n", i, j);
}