C语言编程,输出魔方阵

C语言编程,输出魔方阵,第1张

程序代码:

#include&ltstdio.h&gt

#define N 16

int main()

{

int a[N][N]={0},i,j,k,p,n

p=1

while(p==1)

{

printf("Enter n(1~%d):",N)

scanf("%d",&n)

if((n!=0)&&(n&ltN)&&(n%2!=0))

p=0

}

i=n+1

j=n/2+1

a[1][j]=1

for(k=2k&lt=n*nk++)

{

i=i-1

j=j+1

if((i&lt1)&&(j&gtn))

{

i=i+2

j=j-1

}

else

{

if(i&lt1)i=n

if(j&gtn)j=1

}

if(a&lti&gt[j]==0)a&lti&gt[j]=k

else

{

i=i+2

j=j-1

a&lti&gt[j]=k

}

}

for(i=1i&lt=ni++)

{

for(j=1j&lt=nj++)

printf("%4d",a&lti&gt[j])

printf("\n")

}

return 0

}

扩展资料:

1.第一行中间一列的值为1。

所以用j=n/2+1确定1的列数,得出a[1][j]=1。

2.每一个数存放的行比前一个数的行数减1,列数加1。

行数用i=i-1确定,列数用j=j+1确定。

3.如果一个数行数为第一行,则下一个数行数为最后一行。

4.如果一个列行数为最后一列,则下一个数列数为第一列。

5.如果按上面的规则确定的位置上已有数,或上一个数是第一行最后一列,则把下一个数放在上一个数的下面。

下面是一些心得体会:

1、编程软件里要加载mindcuber里提供的优化过的颜色传感器RGB模块,否者加载程序到主模块的时候会报错。

2、固件升级到了1.05

3、用EV3 Home版 31313搭建的时候,好像有几个转轴连接件不够,于是用了几个9397上的零件。

4、整个机械部分基本问题不大,7岁的儿子按图都搭下来了,个别不对的地方,很容易就能调过来。

想让机器人玩魔方这个挺难的,毕竟机器人不会思考,全靠人们给他输入程序,所以估计可能是安装一个可以辨别颜色的装置,然后把玩魔方的方程(会玩魔方的都知道,魔方有个方程可以让你很快的拼完)输入到机器人里,,手嘛,挺难做的,总之想做出这个来是很难的,估计让那些大学的老师和学生也不好做出来


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11056253.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存