c++打印奇数阶魔方阵方阵.docVIP

  • 19
  • 0
  • 约 3页
  • 2017-06-08 发布于重庆
  • 举报
c打印奇数阶魔方阵方阵

奇数阶魔方阵是指由1到n2个自然数构成的nn的方阵,它的每一行,每一列,和对角线各元素之和均相等,3阶的魔方阵如下: 8 1 6 3 5 7 4 9 2 n阶魔方阵的构造方法为: 1 首先把1放在顶行的正中间,然后把后继数按顺序放置在右上斜的对角线上; 2 当到达顶行时,下一个数放到底行,似乎它在顶行的上面; 3 当到达最右列时,下一个数放在最左端列,似乎它仅靠在右端列的右方; 4 当到达的位置已经填好数时,提示:或到达右上角的位置时,下一个数就放在刚填写的位置的正下方。#include stdafx.h #include iostream using namespace std; int main int argc, char* argv[] int i,j,s,n; int a[100][100]; cout 请输入一个奇数 n 0n 1000 n:; loop1: cin n; if n%2 0||n 0||n 1000 cout 输入错误!请重新输入 n 0n 1000 的奇数n:; goto loop1; for i 1;i n;i++ for j 1;j n;j++ a[i][j] 0; i 1; j n+1 /2; a[1][ n+1 /2] 1; for s 2;s n*n;s++ if i-1 0 j-1 0 if i-1 0 if j-1 0 if a[i-1][j-1] 0 a[--i][--j] s; else a[++i][j] s; else if j-1 0 if a[i-1][n] 0 a[--i][n] s; j n; else a[++i][j] s; else if i-1 0 if j-1 0 if a[n][j-1] 0 a[n][--j] s; i n; else a[++i][j] s; else if j-1 0 if a[n][n] 0 a[n][n] s; i n; j n; else a[++i][j] s; else cout error!; for i 1;i n;i++ for j 1;j n;j++ cout a[i][j] ; cout endl; return 0;

文档评论(0)

1亿VIP精品文档

相关文档