rendered paste body#include <stdlib.h>
#include <stdio.h>
#define SQR(x) (x * x)
#define NS 100 //number of steps
int main (void)
{
double r[NS][2] = {0}, v2[NS][2] = {0}, a[NS][2] = {0}, v[NS][2] = {0}, Ep[NS] = {0}, Ek[NS] = {0};
r[0][0] = 1; r[0][1] = 2;
double d = 0.2;
for (int t = 1; t < NS; t++ ) {
for (int i = 0; i < 2; i++) {
r[t][i] = r[t-1][i] + v[t-1][i] * d + a[t-1][i] * SQR(d)/2;
v2[t][i] = v[t-1][i] + a[t-1][i] * d/2;
a[t][i] = -r[t][i] * 0.1; //k/m = 0.1
v[t][i] = v2[t][i] + a[t][i]/2;
Ek[t] = (SQR(v[t][0]) + SQR(v[t][1]))/2; //m =1
Ep[t] = (SQR(r[t][0]) + SQR(r[t][1])) * d * 0.1/2; //k = 0.1
}
printf ("%d, %g, %g, %g, %g, %g\n", t, r[t][0], r[t][1], Ek[t], Ep[t], Ep[t] + Ek[t]);
}
return 0;
}