C语言编程,打印魔阵(它的每一行,每列的对角线之和相等),代码??

 我来答
ShuiTa1231
2011-12-28
知道答主
回答量:9
采纳率:0%
帮助的人:6.8万
展开全部
#include <stdio.h>
#define n 5
void main()
{
int a[n][n];
int i,j,t,s=0,flag=1;

printf("Please enter array:\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++) /*输入矩阵*/
scanf("%d",&a[i][j]);
}

for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%4d",a[i][j]); /*打印出矩阵*/
printf("\n");
}

for(s=i=0;i<n;i++)
s=s+a[i][i]; /*主对角线上元素之和*/

for(i=0;i<n;i++)
{
for(t=j=0;j<n;j++)
t=t+a[i][j]; /*判断每行元素之和是否相等*/
if(s!=t)
{
flag=0;
break;
}
}

for(j=0;j<n;j++)
{
for(t=i=0;i<n;i++)
t=t+a[i][j]; /*判断每列元素之和是否相等*/
if(s!=t)
{
flag=0;
break;
}
}

for(t=i=0;i<n;i++)
t=t+a[i][n-1-i]; /*副对角线元素之和*/
if(s!=t)
flag=0;

if (flag==1)
printf("是魔方矩阵\n");
else
printf("不是魔方矩阵\n");

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-12-28
展开全部
#include<stdio.h>
#include<conio.h>
#define M 256
#define N 256
void main(void)
{
int a[M][N],i,j,k,n;
printf("请输入幻方阶数(奇数阶):");
scanf("%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
a[i][j]=0;
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("%d\t",a[i][j]);
printf("\n");
}
getch();
}
更多追问追答
追问
这个代码我试过了。没有结果!!!
追答
麻烦你试过再下结论,这是我改过后作为作业交过的,VC6运行,一会儿上图
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式