#include <stdio.h>
#include <math.h>
double dxdt(double t, double x, double y) { return y; }
double dydt(double t, double x, double y) { return -sin(x); }
#define N 10000
#define T 10.0
int main() {
double x, y, t;
double k1x, k2x, k1y, k2y;
int k;
x = 0.0;
y = 1.0;
for (k = 0; k < T * N; k++) {
k1x = T / N * dxdt(t, x, y);
k1y = T / N * dydt(t, x, y);
k2x = T / N * dxdt(t + T / N, x + k1x, y + k1y);
k2y = T / N * dydt(t + T / N, x + k1x, y + k1y);
x = x + (k1x + k2x) / 2.0;
y = y + (k1y + k2y) / 2.0;
t = T / N * k;
printf("(t, x, y) = (%.3f, %.3f, %.3f)\n", t, x, y);
}
return 0;
}
/* end */