⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 74.c

📁 这是一个经过本人一个月的时间自己做的关于c的小程序
💻 C
字号:
/*
打印魔方阵,魔方阵是指这样的方阵,
它的每一行,每一列和对角线之和均相等。
例如:三阶魔方阵
8	1   6
3   5   7
4   9   2

*/
#include<stdio.h>
int mofang()
{
 
	int a[15][15],i,j,k,p,m,n;
	p=1;
	while(p==1)
	{
		printf("请输入n,(0<n<=15,n是奇数。)\n");
		scanf("%d",&n);
		if((n!=0)&&(n<=15)&&(n%2!=0))
		{
			printf("矩形阶数是%d\n",n);
			p=0;
		}
	}//while
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{
				a[i][j]=0;  //对二维数组元素赋值为0;
		}
	}
	j=n/2;//第一行中间的一个元素放1;
    a[0][j]=1;
	for(k=2;k<=n*n;k++)
	{
		i=i-1;
		j=j+1;
		if(i<0&&j>n-1)  //如果是二维数组的右上角的元素,下一个元素放在其正下方;
		{
			i=i+2;
			j=j-1;
		}
		else   //如果不是二维数组的右上角的元素
		{
			if(i<0) i=n-1; //若i减1后为负值,就把i赋值为最后一行
			if(j>n-1) j=0;  //若j加1后大于最大列,就把j赋值为第一列;
		}
		if(a[i][j]==0)     //若i行j列没有元素,就把k赋值给他;
			a[i][j]=k;
   
		else     //若i行j列有元素,就把k赋值给上一个元素的正下方的元素
		{
			i=i+2;
			j=j-1;
			a[i][j]=k;
		}
	}//for
	for(i=0;i<n;i++)
	{ 
		for(j=0;j<n;j++)
		{
          printf("%5d",a[i][j]);
		}
        printf("\n");
	}
}//main

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -