Copy C Code & Paste it below the Compiler & Run
16. Matrix multiplication
#include <stdio.h>
int main() {
//! A = showArray2D(A, rowCursors=[i], colCursors=[k], width=.33)
//! B = showArray2D(B, rowCursors=[k], colCursors=[j], width=.33)
//! C = showArray2D(C, rowCursors=[i], colCursors=[j], width=.33)
double A[2][2] = {{0.866, -0.500}, {0.500, 0.866}};
double B[2][2] = {{0.500, -0.866}, {0.866, 0.500}};
double C[2][2];
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
C[i][j] = 0;
for (int k = 0; k < 2; k++) {
C[i][j] += A[i][k] * B[k][j];
}
}
}
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
printf("%.3f ", C[i][j]);
}
printf("\n");
}
return 0;
}
17. Memory view
#include <stdio.h>
void show(int i, int j) {
printf("i = %i, j = %i\n", i, j);
}
int main() {
//! showMemory(extras=[i,*p], cursors=[k,&a[j][i],p], start=65504, cursorRows=2)
int i = 0, j = 1, *k = &j;
int a[3][2] = {0,1,2,3};
char * p = ((char*)&a[1][1]) + 3;
*k = 2;
show(i, j);
{
int i = 1;
j = 2;
show(i, j);
}
show(i, j);
return 0;
}
18. Operators, Binary
#include <stdio.h>
int main() {
printf("add %i\n", 10 + 2);
printf("sub %i\n", 13 - 1);
printf("mul %i\n", 3 * 4);
printf("div %i\n", 72 / 6);
printf("rem %i\n", 32 % 20);
printf("and %i\n", 15 & 12);
printf("or %i\n", 4 | 8);
printf("xor %i\n", 6 ^ 10);
printf("shl %i\n", 3 << 2);
printf("shr %i\n", 96 >> 3);
printf("comma %i\n", (4, 12));
}
19. Operators, relational
#include <stdio.h>
int main() {
int a = 1, b = 2;
if (a == a) printf(" a == a\n");
if (a != b) printf(" a != b\n");
if (a < b) printf(" a < b\n");
if (a <= a) printf(" a <= a\n");
if (b > a) printf(" b > a\n");
if (b >= b) printf(" b >= b\n");
}
20. Operators, Unary
#include <stdio.h>
int main() {
int a = 3, *b;
printf("%i\n", +a);
printf("%i\n", -a);
printf("%i\n", !a);
printf("%i\n", ~a);
b = &a;
printf("%i\n", *b);
printf("%lu\n", sizeof(a));
}