示例代码:
#include <stdio.h>
#define N 30
int main(void)
{
int n = 0 , m = 0 , sum = 0;
int i = 0 , j = 0 , k = 0 ,l = 0;
int num[N][N] , tmp[N][N] , output[N][N];
scanf("%d %d",&n,&m);
for (i = 0 ; i < n ; i ++)
{
for (j = 0 ; j < n ; j ++)
{
scanf("%d",&num[i][j]);
output[i][j] = num[i][j];
}
}
if (!m)
{
for (j = 0 ; j < n ; j ++)
{
for (k = 0 ; k < n ; k ++)
{
output[j][k] = 0;
if (j == k)
{
output[j][k] = 1;
}
}
}
}
for (i = 1 ; i < m ; i ++)
{
for (j = 0 ; j < n ; j ++)
{
for (k = 0 ; k < n ; k ++)
{
tmp[j][k] = output[j][k];
}
}
for (j = 0 ; j < n ; j ++)
{
for (k = 0 ; k < n ; k ++)
{
sum = 0;
for (l = 0 ; l < n ; l ++)
{
sum += tmp[j][l] * num[l][k];
}
output[j][k] = sum;
}
}
}
for (i = 0 ; i < n ; i ++)
{
for (j = 0 ; j < n ; j ++)
{
printf("%d ",output[i][j]);
}
printf("\n");
}
return 0;
}