⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 环矩阵生成的c语言代码.txt

📁 c语言的一些常见的算法以及思考和改进的文章,写的很不错,花费了很大的精力从网络了搜罗的,希望大家喜欢.
💻 TXT
字号:
环矩阵生成的C语言代码[原创] 
我们可以把卷积运算写作矩阵相乘的形式,此时卷积和矩阵为“环矩阵”,如下面的形式:

   0   9   8   7   6   5   4   3   2   1

   1   0   9   8   7   6   5   4   3   2

   2   1   0   9   8   7   6   5   4   3

   3   2   1   0   9   8   7   6   5   4

   4   3   2   1   0   9   8   7   6   5

   5   4   3   2   1   0   9   8   7   6

   6   5   4   3   2   1   0   9   8   7

   7   6   5   4   3   2   1   0   9   8

   8   7   6   5   4   3   2   1   0   9

   9   8   7   6   5   4   3   2   1   0
我写了3个生成这样一个矩阵的代码,前两个是根据循环移位生成的,是通用的,第三个是根据上面矩阵的规律生成的,不具有代表性,但我个人认为代码中循环变量的控制仍有一点小技巧,提供了一种思路:

#define N 10
#i nclude <conio.h>

void create(int array[N][N])
{
   int i,j;
   for(i=0;i<N;i++)
      array[i][0]=i;
   for(j=1;j<N;j++)
      for(i=0;i<N;i++)
      {
           int t=(i-1+N)%N;
           array[i][j]=array[t][j-1];
      }
}

void crea(int array[N][N])
{
   int i,j;
   array[0][0]=0;
   for(j=1;j<N;j++)
      array[0][j]=N-j;
   for(i=1;i<N;i++)
      for(j=0;j<N;j++)
      {
           int t=(j-1+N)%N;
           array[i][j]=array[i-1][t];
      }
}

void cre(int array[N][N])
{
   int i,j;
   for(i=0;i<N;i++)
   {
      for(j=0;j<i;j++)
      {
            array[i][j]=array[i-1][j]+1;
            array[j][i]=N-array[i][j];
      }
      array[i][j]=0;
   }
}

void output(int array[N][N])
{
   int i,j;
   for(i=0;i<N;i++)
   {
      for(j=0;j<N;j++)
          printf("%4d",array[i][j]);
      printf("\n\n");
   }
}

void main()
{
   int core[N][N],core1[N][N],core2[N][N];
   clrscr();
   create(core);
   output(core);
   printf("\n\n");
   crea(core1);
   output(core1);
   printf("\n\n");
   cre(core2);
   output(core2);
}
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -