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);
}