#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define N 3
#define M 7

float akep[N][N]={
{1,2,3},
{4,5,6},
{7,8,9}};
float bkep[M][M];

float interp(int x, int y)
{
 int i, j;
 float s, p, q, a, b, e;

 s = (N - 1.0) / (M - 1.0);
 p = x * s;
 q = y * s;
 i = floor(p);
 j = floor(q);
 if (i == (N - 1)) i = i - 1;
 if (j == (N - 1)) j = j - 1;
 a = p - (float) i;
 b = q - (float) j;
 e = (1.0 - a) * (1.0 - b) * akep[i][j] +
     (1.0 - a) * b * akep[i][j+1] +
     a * (1.0 - b) * akep[i+1][j] +
     a * b * akep[i+1][j+1];
 return e;
}

void szamol()
{
 int i, j;

 for (i = 0; i < M; i++) {
  for (j = 0; j < M; j++) {
   bkep[i][j] = interp(i, j);
   printf("%5.2f ", bkep[i][j]);
  }
  printf("\n");
 }
}

void main()
{
 szamol();
}

A program kimenete:

 1.00  1.33  1.67  2.00  2.33  2.67  3.00 
 2.00  2.33  2.67  3.00  3.33  3.67  4.00 
 3.00  3.33  3.67  4.00  4.33  4.67  5.00 
 4.00  4.33  4.67  5.00  5.33  5.67  6.00 
 5.00  5.33  5.67  6.00  6.33  6.67  7.00 
 6.00  6.33  6.67  7.00  7.33  7.67  8.00 
 7.00  7.33  7.67  8.00  8.33  8.67  9.00