C语言 魔方问题 强人 牛人进!

来源:百度知道 编辑:UC知道 时间:2024/05/03 20:25:17
1,2,3,4 不知道填什么
条件:
1.不让用条件运算符
2.打印格式为
4 3 8
9 5 1
2 7 6

PS:如果你能用条件运算副做出来也行
#include "stdio.h"
main()
{int m[20][20],i,j,n,k;
do{printf("n=");
scanf("%d",&n);
}while(!(n>=3 && n<=19 && n%2));
for(k=1,i=(n+1)/2,j=n;k<=n*n;k++)
{m[i][j]=k;
if( 1。 ){i= 2。 ; j= 3。 ;}
else 4。 ;
}
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++) printf("%4d",m[i][j]);
printf("\n");
}
}

#include<iostream>
#include<math.h>
#include<iomanip>
#define N 20
int main()
{
using namespace std;
int Array[N][N],startNumber=1,n=3;
cout<<"\n\n";
int b=startNumber;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
Array[i][j]=0;
Array[0][n/2]=startNumber++;
for(int i=-1,j=(n/2)-1;startNumber<n*n+b;i--,j--)
{
if(Array[(i+n)%n][(j+n)%n]==0)
{Array[(i+n)%n][(j+n)%n]=startNumber++;
i=(i+n)%n;
j=(j+n)%n;
}
else
{Array[i+2][j+1]=startNumber++;
i=i+2;
j=j+1;
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
cout<<setw(4)<<Array[i][j]<<" ";
cout<<e