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

📄 fill_matrix.cpp

📁 填充矩阵(从外向内顺序填充自然数)
💻 CPP
字号:
// fill_matrix.cpp : Defines the entry point for the console application.
//


#include "stdafx.h"
#include "stdlib.h"
#include "stdio.h"
#include "iostream.h"

#define N 16

int main(int argc, char* argv[])
{
	int A[N],B[N],C[N][N];
	int *pv,*ph,k=0,l=0,i_value=0;
	int i1=0,j1=0,i2=0,j2=0,cs=N - 1;
	char move_bz = '0';   //'0'表示正向移动,'1'表示反向移动
    ph = A;
	pv = B;

	for(k=0;k<N;k++)
	{A[k]=k;B[k]=k;}

	k=0;
	for(cs=(N-1);(cs>=1);cs-=2)
		{
			//横向指针移动,竖向不动
			if (move_bz = '0')
			{
			   k=*pv;
			   for (i1=0;i1<cs;i1++)
               {  
				   ++i_value;
				   l=*ph++;
				   C[k][l]=i_value;
				   //printf("C[%d][%d] = %d   \n",k,l,C[k][l]);
			   }
			   l=*ph;
			   for (j1=0;j1<cs;j1++)
			   {
				   ++i_value;
				   k=*pv++;
                   C[k][l]=i_value;
				   //printf("C[%d][%d] = %d   \n",k,l,C[k][l]);
			   }
			   move_bz = '1';
			}
		    //竖向指针移动,横向不动
			if (move_bz = '1')
			{
			   k=*pv;
			   for (i2=0;i2<cs;i2++)
               {  
				   ++i_value;
				   l=*ph--;
				   C[k][l]=i_value;
				   //printf("C[%d][%d] = %d   \n",k,l,C[k][l]);
			   }
			   l=*ph;
			   for (j2=0;j2<cs;j2++)
			   {
				   ++i_value;
				   k=*pv--;
                   C[k][l]=i_value;
				   //printf("C[%d][%d] = %d   \n",k,l,C[k][l]);
			   }
			   pv++;
			   ph++;
			   move_bz = '0';
			}
   	}
	//最后一位
	if ((N % 2) > 0) C[*pv][*ph]=++i_value;
	//printf("C[%d][%d] = %d   \n",*pv,*ph,C[*pv][*ph]);

	for(k=0;k<N;k++)
	{
		printf("\n");
		for(l=0;l<N;l++)
		{
			printf("%3d ",C[k][l]);
		}
	}
	printf("\n\n");
	return 0;
}

⌨️ 快捷键说明

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