要求生成并显示这样一个矩阵:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
main 函数里面是两个子函数调用:一个子函数是排列矩阵,一个子函数是显示矩阵;
主函数和显示矩阵的函数偶觉得没啥错误就不写这里了。
排列矩阵的函数没记全,只记了核心代码。
number = 1;
index1 = 1;
index2 = 1;
direction = 1;
dimentionFlag = 0;
lowerBound = 0;
upperBound = Size; // 在main函数里Size定义为5;
while(upperBound >= lowerBound)
{
for(int i=0;i<4;i++)
{
for(int j=lowerBound;j<upperBound;j++)
{
matrix[index1*size+index2-1] = number;
number++;
if(j>=upperBound)
{
dimentionFlag = !dimentionFlag;
if(i%2==1)
{
direction = (direction+1)%4;
}
}
if(dimentionFlag) { index1 += direction;}
else { index2 += direction;}
}
if(i%2==0)
{
if(i%4==0) { lowerBound++;}
else { upperBound++;}
}
}
}
谢谢大家来帮忙找错啊!