java 二维数组奇数金字塔_实验9:二维数组(奇数阶魔方)*

一、实验目的

了解伪代码的作用;学会编写伪代码;培养提取问题要点的能力;编写代码来模拟实际操作;掌握二维数组的使用;掌握符号常量的作用;

二、实验内容

三、实验要点

放置的过程可以归纳为:

1) 放置 1~ n*n 个数:确定初步位置,也就是 i 和 j 的值; 如果出界,就进行调整;放置 k

2) 确定初步位置有两种选择:放置在前一个数的下方或者右上方

四、代码

伪代码

确定1的位置坐标 i 和 j;

在 i 和 j 这个位置放置 1;

for (放置2~n*n个数)

{

if (k in [1,n+1,2*n+1, ..., (n-1)*n+1])

下方;

else

{

右上方;

}

if (在第0行) 调整到第n行;

if (在第n+1列) 调整到第1列;

放置 k 到 a[i][j];

}

输出二维矩阵;

对应的C语言代码描述如下:

#include

#define N 20

int main( )

{

int n, k, i, j;

int a[N][N];

scanf("%d", &n);

i= 1; j=(n+1)/2;

a[i][j]=1;

for (k=2; k<=n*n; k++)

{

if (k%n==1)

i = i+1;

else

{

i = i-1; j = j+1;

}

if (i==0) i = n;

if (j==n+1) j = 1;

a[i][j] = k;

}

for (i=1; i<=n; i++)

{

for (j=1; j<=n; j++)

printf("%4d", a[i][j]);

printf("\n");

}

return 0;

}

五、实验小结

总结实验过程中遇到的问题及解决办法,不少于50字。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值