📄 fill_matrix.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 + -