MFC输出蛇行矩阵
Posted bcbobo21cn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC输出蛇行矩阵相关的知识,希望对你有一定的参考价值。
这是一道ACM基础题;
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形;
蛇形矩阵(Snake matrix)是矩阵的一种,常被应用在编程题目与数学数列中,需要提取每条斜线里最小的数字;
VC6,新建一个单文档工程;
先在视类CPP文件头部定义矩阵的大小,#define EDGE 5;
视类OnDraw()函数如下;
void CShxView::OnDraw(CDC* pDC)
CShxDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CString str1;
int row, col;
int a[EDGE][EDGE];
//根据蛇形矩阵的规律,对其进行赋值
for(int i=0;i<EDGE;i++)
for(int j=0;j<EDGE;j++)
a[0][0]=1;
if(j>=EDGE-i) //左上三角的特征j<i
a[i][j]=0;
else if(j==0) //先确定第一列,后面的数都与第一行以及所在的行序、列序有关
a[i][j]=a[i-1][j]+i;
else a[i][j]=a[i][j-1]+i+j+1;
//输出蛇形矩阵
row=0;
col=0;
for(i=0;i<EDGE;i++)
for(int j=0;j<EDGE;j++)
if(a[i][j]==0)
else
str1.Format("%d",a[i][j]);
pDC->TextOut(20+row*30, 20+col*60, str1);
col=col+1;
row = row + 1;
col = 0;
输出;
若 #define EDGE 15,则输出如下;
斜线上的数字是连续的;
以上是关于MFC输出蛇行矩阵的主要内容,如果未能解决你的问题,请参考以下文章