#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