20_二维数组_输出魔方阵
来源:互联网 发布:wifi监控器软件下载 编辑:程序博客网 时间:2024/06/11 17:12
//_20_二维数组//_20_main.cpp//输出魔方阵:各行各列以及对角线元素相加之和相等#include <stdio.h>#include <stdlib.h>int main(){int intArray[16][16];//因为魔方阵最大只能为15*15,故用16*16规格,[0][0]不用int n;//魔方阵规模int m=1;//便于利用while循环while(m==1){printf("请输入n(0<n<=15),且n为奇数\n");scanf("%d",&n);//魔方阵要求n为15以内的奇数if((n!=0)&&(n<=15)&&(n%2!=0)){printf("矩阵的阶数为%d.\n",n);m=0;//循环终止,如果n不满足条件,则循环继续}}//数组赋值for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)intArray[i][j]=0;/*魔方阵存放规则:1、将1放在第一行中间的一列2、从2开始直到n*n为止,每个数字存放的个数的行数减一,列数加一3、如果上一个数的行数为1,则下一个数的行数为n4、当上一个数的列数为n,下一个数的列数应为15、如果按照上面规则确定的位置上已经有数,或者上一个数是第一行第n列时, 则把下一个数放到上一个数的下面*///建立魔方阵int i=1;int j=n/2+1;//列数intArray[1][j]=1;//规则1for(int k=2;k<=n*n;k++){i = i - 1;//行减一 //规则2j = j + 1;//列减一if((i<1)&&(j>n)) //规则5{i = i + 2;//行加二j = j - 1;//列减一}else{if(i<1) i = n; //规则3;if(j>n)j = 1; //规则4}if(intArray[i][j] == 0)intArray[i][j] = k;else{i = i + 2; //规则5j = j - 1;intArray[i][j] = k;}}//输出魔方阵for(int i=1;i<=n;i++){for(int j=1;j<=n;j++)printf("%4d",intArray[i][j]);printf("\n");}system("pause");return 0;}
0 0
- 20_二维数组_输出魔方阵
- JACK_C#_二维数组
- 38_二维数组指针
- C语言_二维数组
- C语言_二维数组
- Java二维数组_三角
- java基础_二维数组
- 二维数组魔方
- Java学习_数组1_二维数组内存图解
- C++_二维数组的简单举例
- Day6_c语言_二维数组练习
- iOS C语言5_二维数组
- 03_二维数组的查找
- 20170514_使用vector建立二维数组
- 二维数组练习05_计算鞍点
- 二维数组练习19_肿瘤检测
- 二维数组练习18_肿瘤面积
- 二维数组练习25_螺旋加密
- Maven教程初级篇03: 创建Web应用
- 18_有关循环结构的综合实例
- 19_一维数组
- 开源 nosql 数据库 —— LedisDB 简介
- 3.集合--ConcurrentHashMap之实现细节
- 20_二维数组_输出魔方阵
- 【心凉只需一瞬间!超现实的人生感悟!】
- 加快Soap客户端SUDS访问速度
- Java transient关键字使用小记
- 0-1背包问题
- 链表操作---面向过程--到---面型对象---到模板类
- Android中获取应用程序(包)的信息-----PackageManager的使用(一)
- Linux命令学习手册-tr命令
- 字符串的组合