题目:
1)下载PC电脑的九宫方阵,运行示例,找出奇数、4倍偶数魔方阵的排数规律,编制C程序,显示奇偶数方阵数的排列及横竖斜线和的值。
7阶魔方阵8阶魔方阵
22314049 21120 |175 16362 4 55958 8 |260
2123324143 312 |1755610115352141549 |260
131524334244 4 |1754818194544222341 |260
5141625343645 |1752539382829353432 |260
46 6 817263537 |1753331303637272640 |260
3847 7 9182729 |1752442432120464717 |260
303948 1101928 |17516505113125455 9 |260
---------------------------- 57 7 66061 3 264 |260
175 175 175 175 175 175 175--------------------------------
左斜线和为: 175右斜线和为: 175260 260 260 260 260 260 260 260
左斜线和为: 260右斜线和为: 260
(以上一题能做多少做多少,调试正确后粘贴在下框内,提交作业)
--------------------------------------------------------------------------------
提交作业时间:2004-3-24 11:18:35
#include <stdio.h>
void main()
{
int magic[99][99]={0};
int n,n1,i,j,m=1,sum=0;
printf(">>Enter the number of Matrix: ");
scanf("%d",&n);
if (n%2==1)
{
i=n;j=(n+1)/2;
for(;m<=n*n;m++)
{
if((i>n)&&(j>n)||magic[i][j]!=0)
i=i-2,j=j-1;
if(i>n) i=1;
if(j>n) j=1;
magic[i][j]=m;
i++; j++;
}
}
else
{
n1=n*n+1;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
magic[i][j]=m;
if((i%4==1||i%4==0)&&(j%4==2||j%4==3)||(i%4==2||i%4==3)&&(j%4==1||j%4==0))
magic[i][j]=n1-m;
m++;
}
}
printf("/nThe %d * %d magic square: /n/n",n,n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{printf("%4d",magic[i][j]); sum+=magic[i][j];}
printf(" | %4d/n",sum),sum=0;
}
for (i=1;i<=n;i++) printf("____");printf("/n/n");
for (j=1;j<=n;j++)
{
for (i=1;i<=n;i++) sum+=magic[i][j];
printf("%4d",sum);sum=0;
}
printf("/n/n");
for (i=n;i>=1;i--) {j=n+1-i;sum+=magic[i][j];}
printf("左斜线和:%4d ",sum);sum=0;
for (i=1;i<=n;i++) {j=i; sum+=magic[i][j];}
printf(" 右斜线和:%4d/n/n",sum);
}
得分:8 点评:if((I%4==1||I%4==0写在一行
1)下载PC电脑的九宫方阵,运行示例,找出奇数、4倍偶数魔方阵的排数规律,编制C程序,显示奇偶数方阵数的排列及横竖斜线和的值。
7阶魔方阵8阶魔方阵
22314049 21120 |175 16362 4 55958 8 |260
2123324143 312 |1755610115352141549 |260
131524334244 4 |1754818194544222341 |260
5141625343645 |1752539382829353432 |260
46 6 817263537 |1753331303637272640 |260
3847 7 9182729 |1752442432120464717 |260
303948 1101928 |17516505113125455 9 |260
---------------------------- 57 7 66061 3 264 |260
175 175 175 175 175 175 175--------------------------------
左斜线和为: 175右斜线和为: 175260 260 260 260 260 260 260 260
左斜线和为: 260右斜线和为: 260
(以上一题能做多少做多少,调试正确后粘贴在下框内,提交作业)
--------------------------------------------------------------------------------
提交作业时间:2004-3-24 11:18:35
#include <stdio.h>
void main()
{
int magic[99][99]={0};
int n,n1,i,j,m=1,sum=0;
printf(">>Enter the number of Matrix: ");
scanf("%d",&n);
if (n%2==1)
{
i=n;j=(n+1)/2;
for(;m<=n*n;m++)
{
if((i>n)&&(j>n)||magic[i][j]!=0)
i=i-2,j=j-1;
if(i>n) i=1;
if(j>n) j=1;
magic[i][j]=m;
i++; j++;
}
}
else
{
n1=n*n+1;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
magic[i][j]=m;
if((i%4==1||i%4==0)&&(j%4==2||j%4==3)||(i%4==2||i%4==3)&&(j%4==1||j%4==0))
magic[i][j]=n1-m;
m++;
}
}
printf("/nThe %d * %d magic square: /n/n",n,n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{printf("%4d",magic[i][j]); sum+=magic[i][j];}
printf(" | %4d/n",sum),sum=0;
}
for (i=1;i<=n;i++) printf("____");printf("/n/n");
for (j=1;j<=n;j++)
{
for (i=1;i<=n;i++) sum+=magic[i][j];
printf("%4d",sum);sum=0;
}
printf("/n/n");
for (i=n;i>=1;i--) {j=n+1-i;sum+=magic[i][j];}
printf("左斜线和:%4d ",sum);sum=0;
for (i=1;i<=n;i++) {j=i; sum+=magic[i][j];}
printf(" 右斜线和:%4d/n/n",sum);
}
得分:8 点评:if((I%4==1||I%4==0写在一行