用C语言,输出“魔方阵”
发布网友
发布时间:2022-05-17 03:08
我来回答
共3个回答
热心网友
时间:2023-08-11 12:52
#include<stdio.h>
void main()
{
int a[16][16],i,j,k,n;
printf("enter n(n=1 to 15):");
scanf("%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
a[i][j]=0; //一定要初始化数组,不然就输不出结果
if(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) //到了第一行,则其下一个元素在第n行
i=n;
if(j>n) //到了最后一列,则下一个元素转到第一列
j=1;
}
if(a[i][j]==0) //如果下一个元素还没有被填充,已定的规律由大到小的顺序进行输出
a[i][j]=k;
else
{
i=i+2; //由于原来i减去了1,所以现在要加上1,总共要回去2
j=j-1; //由于原来j加上了1,所以现在要减去1
a[i][j]=k;
}
}
for(i=1;i<=n;i++) //矩阵的输入模块
{
for(j=1;j<=n;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
热心网友
时间:2023-08-11 12:52
/*------------------------
Description:
Magic Matrix:Magic Matrix is a matrix which
the number in rows and cols and diagonals their
sum is the same.
Envrionment:VC6.0
Date:16:59 2008-1-17
Email:eryar@163.com
------------------------*/
#include <stdio.h>
#include <conio.h>
void print(int magic[][16],int n);
void everysum(int magic[][16],int m);
main()
{
int flag=0;
int i,j,k,n;
int magic[16][16];
printf("---Show a Magic Matrix---\n");
while(flag==0) {
printf("Enter a number:");
scanf("%d",&n);
if(n<16&&n>1&&n%2)
flag = 1;
}
for(i=0;i<n;i++) /*Initiate Matrix.*/
for(j=0;j<n;j++)
magic[i][j] = 0;
magic[0][n/2] = 1;
i=0;j=n/2;
for(k=2;k<=n*n;k++) {
i--; j++;
if(i<0&&j>n-1) {
i+=2;
j--;
}
if(i<0) i=n-1;
if(j>n-1) j=0;
if(magic[i][j]!=0) {
i+=2;
j--;
}
magic[i][j] = k;
}
print(magic,n);
everysum(magic,n);
printf("Press any key to halt...");
getch();
}
void print(int magic[][16],int n)
{
int i,j;
for(i=0;i<n;i++) {
for(j=0;j<n;j++)
printf("%4d",magic[i][j]);
printf("\n");
}
}
void everysum(int magic[][16],int m)
{
int i,j;
int sum1=0;
int sum2=0;
printf("The SUMS :\n");
for(i=0;i<m;i++) {
for(j=0;j<m;j++) {
sum1 += magic[i][j];
sum2 += magic[j][i];
}
printf("ROW %d : %d \t COL %d : %d ",i+1,sum1,i+1,sum2);
printf("\n");
sum1=0; sum2=0;
}
}
/*------------------------
Test data: 3 Magic Matrix
8 1 6
3 5 7
4 9 2
------------------------*/
热心网友
时间:2023-08-11 12:53
魔方阵