0
点赞
收藏
分享

微信扫一扫

C语言编程>第六周 ⑧ 编写程序,实现魔方阵。


例题:编写程序,实现魔方阵。
例图:
1)3-魔方阵

8

1

6

3

5

7

4

9

2

2)5-魔方阵

17

24

1




23

5

7

4

6

13

10

12

19

11

18

25

代码如下:

#include<stdio.h>
#include<stdlib.h>

int array(int n)
{
int i, j, no, num, max;
int *mtrx;
if(n%2 == 0) /*n是偶数,则加1使其变为奇数*/
{
n=n+1;
}
max=n*n;
mtrx=(int *)malloc(max+max); /*为魔方阵分配内存*/
mtrx[n/2]=1; /* 将1存入数组*/
i=0; /*自然数1所在行*/
j=n/2; /*自然数1所在列*/
/*从2开始确定每个数的存放位置*/
for(num=2; num<=max; num++)
{
i=i-1;
j=j+1;
if((num-1)%n == 0) /*当前数是n的倍数*/
{
i=i+2;
j=j-1;
}
if(i<0) /*当前数在第0行*/
{
i=n-1;
}
if(j>n-1) /*当前数在最后一列,即n-1列*/
{
j=0;
}
no=i*n+j; /*找到当前数在数组中的存放位置*/
mtrx[no]=num;
}
/*打印生成的魔方阵*/
printf("生成的%d-魔方阵为:",n);
no=0;
for(i=0; i<n; i++)
{
printf("\n");
for(j=0; j<n; j++)
{
printf("%3d", mtrx[no]);
no++;
}
}
printf("\n");
free(mtrx);
return 0;
}

int main()
{
int n;
printf("请输入n值:\n");
scanf("%d", &n);
array(n); /*调用array函数*/
return 0;
}

输出运行窗口如下:

C语言编程>第六周 ⑧ 编写程序,实现魔方阵。_二级C语言考试上机题


C语言编程>第六周 ⑧ 编写程序,实现魔方阵。_程序设计_02


本周其他练习

​​C语言程序设计专栏​​

​​C语言编程>第六周 ① 编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中。 在主函数中调用该函数计算出这n个整数之和。​​

​​C语言编程>第六周 ② 用户输入一组数据,直到输入回车结束,且把数据放入数组中。要求:先对数组进行冒泡排序,输出结果;再提示用户”是否插入数据”,若要插入数据,则把插入的数据插入到数组中,且仍按顺序输出;最后求出最大值,和最小值,输出。​​

​​C语言编程>第六周 ③ 在邮政系统中,收费是这样规定的,当邮包重量<=10公斤时,按每公斤0.25元收费;如果超过10公斤时,超过部分按0.34元收费,其余部分按0.25元收费。现要求用户输入邮包重量,请输出应付的邮资。​​

​​C语言编程>第六周 ④ 聚会时规定:男生,超过18岁可以喝酒,没有超过18岁时,喝饮料;女生,超过20岁时,可以喝酒,没有超过20岁时,喝饮料;请输入学生性别和学生的年龄,并根据输入的情况来判断喝什么!​​

​​C语言编程>第六周 ⑤ 北大青鸟要求:在推荐就业时,按以下几个标准来衡量
1):项目个数在5个以内:不能推荐就业
2):项目个数在6到10个以内:只能推荐重庆市内的小公司
3):项目个数在11到20个以内:可以推荐重庆市内的任何公司
4):项目个数在20个以上:可能进外企​​

​​C语言编程>第六周 ⑥ 输入一串字符,统计大大写字母的个数,并强调统计必须用函数。​​

​​C语言编程>第六周 ⑦ 编写一个程序用于创建一格结构BOOK,用来储存书的信息:书名,作者姓名,页数和价格,接受输入和输出 。​​

​​C语言编程>第六周 ⑧ 编写程序,实现魔方阵。​​

越努力越幸运!​​
​​加油,奥力给!!!


举报

相关推荐

0 条评论