C语言代码如下: #include<stdio.h>intmain(){intn=11,sum=0;//确定要生成n阶幻方intarr[11][11]={0};//定义二维n数组,所有值为0,数组长度要和n相等//分三种情况,奇数幻方,单偶数幻方,双偶数幻方if(n%2!=0){//奇数幻方,罗伯法//性质:第一行最中间数为1,最中间数为(n^2+1)/2,和为n(n^2...
void main() { int a[N][N]={0}; int i,j,k; i=N-1; j=N/2; for(k=1;k<=N*N;k++) { a[i++][j++]=k; if(k%N==0) { i-=2; j-=1; } else { i=i%N; j=j%N; } } for(i=0;i<N;i++) { for(j=0;j<N;j++) printf("%02d ",a[i][j]); printf("\n...
//printf("data=%d,m=%d,k=%d\n ",data,m,k); p=m-1;//上 q=k+1;//右 if(p<0&&q<n&&q>=0){//上出框 //printf("qian shang chu: p=%d,q=%d\n",p,q); p=n-1;//下边放 //printf("hou shang chu: p=%d,q=%d\n",p,q); ...
三阶幻方含指针c语言代码 以下是一个使用C语言编写的三阶幻方程序,它可以输出一个3阶幻方: ```c #include <stdio.h> void print_magic_square(int** magic_square, int n) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { printf("%d\t", magic_square[i][j]...
输出格式: 如果是幻方矩阵,输出提示信息: "It is a magic square!\n" 矩阵元素的输出: "%4d"(换行使用"\n") 如果不是幻方矩阵,输出提示信息: "It is not a magic square!\n" #include<stdio.h> #define MAX 5 int Fun(int a[MAX][MAX]) ...
int a[10][10]={0}要赋初值,另外if(a[j][k]=0)continue;这一句=改为==,运行了一下还是实现不了,只能输出一个1,仔细看了一下发现你的算法不对,没有给所有空赋值,奇数阶幻方的实现方式是(比如3阶的9个数):在第一行中间填入1,之后往右数1格往下数2格填入2,再往右数1格往下数...
看看这个吧,字数太多原因,不得不把程序打乱了 #include<stdio.h> #define N 100 int main() { int h,i,j,k,l,n,t; int a[N][N]; while(1){ for(i=0;i<N;i++) for(j=0;j<N;j++) a[i][j]=0; printf("Please Input a Number:"); scanf("%d",&n); if(n==0...
for (int i=2;i<=n*n;i++)//幻方总和 { rest++; if(y==n) //靠下侧 { if(rest>n)//满n个,向上折行 { y--;a[y][x]=i;rest=1; } else //折向关于方阵对称的点(上侧) { y=1;x++;a[y][x]=i; } } else if(x==n)//靠右侧 { if (rest>n)//满n个,向上折行 { y...
只实现了奇数的情况,其他情况参照百度百科。include<stdio.h>#include<stdlib.h>#include<memory.h>void magic(int);void magic1(int);void magic4(int);void magic42(int);void magic(int n){ if(n==1) { printf("1\n"); return; } if(n==2) { printf("...
void main(){ int x,i,j,fl,k=0,a[18][18]={0};printf("请输入层数:");scanf("%d",&x);if((x!=4)&&(x%2==0)||(x<0)&&(x>18))fl=0;else if(x==4){ for(i=0;i<x;i++){ for(j=0;j<x;j++){ k+=1;a[i][j]=k;} } for(i=0;i<x;i++)for(j=...