c语言的一道关于数组的编程题输出“魔方阵”.所谓魔方阵是指这样的方阵,它的每一行,每一列和对角线之和均相等.

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 23:48:53

c语言的一道关于数组的编程题输出“魔方阵”.所谓魔方阵是指这样的方阵,它的每一行,每一列和对角线之和均相等.
c语言的一道关于数组的编程题
输出“魔方阵”.所谓魔方阵是指这样的方阵,它的每一行,每一列和对角线之和均相等.

c语言的一道关于数组的编程题输出“魔方阵”.所谓魔方阵是指这样的方阵,它的每一行,每一列和对角线之和均相等.

算法:
魔方阵的排列规律(奇数阵):
⑴将1放在第一行中间一列.
⑵从2开始直到n×n止各数依次按下列规则存放:每一个数存放的行比前一个数的行数减1,列数加1.
⑶如果上一个数的行数为1,则下一个数的行数为n,列数加1.如果上一个数的列数的n时,下一个数的列数为1,行数减1.
⑷如果按上面的规则确定的位置上已有数,或上一个数是第一行第n列时,则把下一个数放在上一个数的下面.

#include <stdio.h> 
#define N 16 //N可修改 
int main() 

int a[N][N]={0},i,j,k,p,m,n; 
p=1; 
while(p==1) 

printf("Enter n(1~%d): ",N-1); 
scanf("%d",&n); 
if((n!=0)&&(n<N)&&(n%2!=0)) 
p=0; 

i=n+1; 
j=n/2+1; 
a[1][j]=1; 
for(k=2;k<=n*n;k++) 

i=i-1; 
j=j+1; 
if((i<1)&&(j>n)) 

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

else 

if(i<1) i=n; 
if(j>n) j=1; 

if(a[i][j]==0) a[i][j]=k; 
else 

i=i+2; 
j=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; 
}

c语言的一道关于数组的编程题输出“魔方阵”.所谓魔方阵是指这样的方阵,它的每一行,每一列和对角线之和均相等. 用C语言编程:3行4列的二维数组中输出每一行的最大值怎么编程呀 C语言编程求助!(关于数组)“输入5个学生的3门课程成绩,输出5个学生中的最高平均分”. c语言编程 将一个随机输入的4*4二维数组逆时针旋转90度后以4行4列输出如题 C语言一道简单的数组编程题编写一个程序,把1到1000放入数组中,并把能被7整除或能被11整除,但不能被77整除的所有整数按5个1行输出. c语言编程,输入一个数组,利用自定义函数求数组的平均数(用数组做参数). 用C语言编程,输出一个1到9组成的二维数组的上三角,如1 2 3 5 6 9的图形出来, C语言编程;输入一个班级某门课程的成绩存入数组,将不及格的同学改为及格其他的加10分后输出全班成绩. c语言编某方矩阵,在下面的5x5魔方矩阵中,每一行、每一列、及对角线上的元素之和都是相等的.试编程将5x5矩阵中的元素读到一个二维整型数组中,然后检验其是否为魔方阵,若是魔方阵则按下 c语言编程题(用一维数组二维数组的方法做) (1)用一堆数组计算Fibonacci数列的前20项.Fc语言编程题(用一维数组二维数组的方法做)(1)用一堆数组计算Fibonacci数列的前20项.Fibonacci数列为1 1 2 3 5 8 13 c语言编程题 please...please...please...1、编程实现,求表达式:1+3+5+7…….前20项之和2、输出100到200之间的所有素数,要求每行10个数据3、有一整形数组,键盘输入数据,求数组元素的最大值、最小值 c语言数组编程,一班级10个学生,每个学生3门课考试成绩,编程每个学生的成绩和每门课的平均成绩,输出结果 已知三角形的三个顶点,利用数组计算三角形的面积(C语言编程) C语言编程 求三个数的平均数不能用指针数组求解 用筛法求N之内的素数.需要定义数组.C语言编程 c语言编程,二维数组求助/*输入一个M*N的整数矩阵(3 uchar和uchar code 数组 的区别C语言 给单片机 编程用到 C语言编程 输出10个数字,以-1结尾,统计其中带8或能被8整除的数字的个数,并输出这些数.要求用到数组.基本些就好,感激不尽