C语言二维数组周边元素求平均值

请问为什么运行不了?
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define N 5
double fun(int w[][N])
{
double ave;
int k1=0,k2=0,K=0,k=0;
int i,j;
for(i=0;i<N;i+4)
{
for(j=0;j<N;j++)
{
k++;
k1+=w[i][j];
}
}
printf("%f",k1);
for(i=0;i<N;i+4)
{
for(j=1;j<N-1;j++)
{
k++;
k2+=w[j][i];
}
}
printf("%f",k2);
k=k1+k2;
ave=K/k;
return ave;
}
void main()
{
int a[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,0,8,2,5,9,1,4,1};
int i,j;
double s;
system("CLS");
printf("The array\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
s=fun(a);
printf("THE RESULT\n");
printf("The sum is:%1f\n",s);
}

img

建议在一个函数里不要同时有大小写命名的变量,像这个k K,有时候分不清到底是大写还是小写

double fun(int w[N][N])
{
    double ave, K = 0.0;
    int k1 = 0, k2 = 0, k = 0;
    int i, j;
    for (i = 0; i < N; i += 4)
    {
        for (j = 0; j < N; j++)
        {
            k++;
            k1 += w[i][j];
        }
    }
    printf("%d\n", k1);
    for (i = 0; i < N; i += 4)
    {
        for (j = 1; j < N - 1; j++)
        {
            k++;
            k2 += w[j][i];
        }
    }
    printf("%d\n", k2);
    K = k1 + k2;
    ave = K / k;
    return ave;
}