WooKinson

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

示例代码:

#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;
}

posted on 2018-01-18 11:43  WooKinson  阅读(258)  评论(0编辑  收藏  举报