Here's an example of a program in C that generates Hilbert's curve:
#include <stdio.h>
void hilbert(int n, int x, int y, int dx, int dy) {
if (n <= 0) return;
int newX, newY;
// Recursively generate the lower-left curve
hilbert(n-1, y, x, dy, dx);
// Print the current point
printf("(%d, %d)\n", x, y);
// Recursively generate the upper-right curve
newX = x + dx;
newY = y + dy;
hilbert(n-1, newX, newY, dx, dy);
// Recursively generate the upper-left curve
newX = x + dx + dy;
newY = y + dy + dx;
hilbert(n-1, newX, newY, dy, dx);
// Recursively generate the lower-right curve
newX = x + dx + dy + dx;
newY = y + dy + dx + dy;
hilbert(n-1, newX, newY, -dx, -dy);
}
int main() {
int n = 3; // Change this value to generate a larger curve
hilbert(n, 0, 0, 1, 0);
return 0;
}