魔法矩阵c++实现(nil)
来源:互联网 发布:华育杯好作文网络征集 编辑:程序博客网 时间:2024/06/07 06:11
#include <cstdlib>#include <iostream>using namespace std;int main(int argc, char *argv[]){ while(1){ int iOdd = -1; int i,j,iOddSquare,**piArr; int iRow = 0,iColumn,iRowTemp,iColumnTemp; int *iCheckSum; for(;;){ cout<<"Enter Odd number:"; cin>>iOdd; if((iOdd > 0)&& ((iOdd % 2) == 1))/*判断数值有效且是奇数*/ break; else cout<<"Enter error,Please again"<<endl; } iOddSquare = iOdd*iOdd; iColumn = (iOdd -1 )/2; /**********************分配内存***************************/ iCheckSum = new int[iOdd+2];//用于叫校验 if(NULL == iCheckSum){ cout<<"new fail"<<endl; exit(-1); } for(i = 0;i<iOdd+2;++i) iCheckSum[i] = 0; /*********************分配内存*****************************/ piArr = new int *[iOdd];/*分配指向数组的指针内存*/ if(NULL==piArr){ cout<<"new fail"<<endl; exit(-1); } for(i = 0; i < iOdd;++i){ piArr[i] = new int[iOdd];//数组分配内存 if(NULL == piArr[i]){//分配失败释放内存空间 for(j = i;j>=0;--j){ delete [] piArr[j]; piArr[j] = NULL; if(0==j){ delete [] piArr; piArr = NULL; cout<<"new fail"<<endl; exit(-1); } } } } /*********************生成魔方矩阵******************************/ for(i = 0;i<iOdd;i++) for(j = 0;j < iOdd;j++) piArr[i][j] = 0; piArr[0][iColumn] = 1; for(i = 2; i<= iOddSquare;++i){ iRowTemp = iRow; iColumnTemp = iColumn; if(iRow-1>=0) iRow--; else iRow = iRow-1+iOdd; if(iColumn + 1<= iOdd - 1) iColumn++; else iColumn = iColumn+1-iOdd; if(piArr[iRow][iColumn]>0){ iRow = iRowTemp+1; iColumn = iColumnTemp; } piArr[iRow][iColumn] = i; } /************************打印出矩阵******************************/ for(i = 0;i < iOdd ;++i){ for(j = 0; j < iOdd;++j) cout<<" "<<piArr[i][j]; cout<<"\n"; } /***********************计算校验********************************/ for(i = 0;i < iOdd;++i){ for(j = 0;j < iOdd;++j) iCheckSum[i]+=piArr[i][j]; iCheckSum[iOdd]+=piArr[i][i];//计算对角值 '\' iCheckSum[iOdd+1]+=piArr[i][iOdd-1-i];//计算对角值 '/' } for(i = 0; i < iOdd+2;++i) if(iCheckSum[i] == (iOdd*(iOdd*iOdd+1)/2)) continue; else{ cout<<"check sum error!"<<endl; } cout<<"check sum success!"<<endl; /*******************************************************/ //释放内存 for(i = 0;i<iOdd;i++){ delete [] piArr[i]; piArr[i] =NULL; } delete [] piArr; piArr = NULL; delete [] iCheckSum; } /*************************************************************/ return 0;}
0 0
- 魔法矩阵c++实现(nil)
- objective c中的nil,Nil
- oj2470: 魔法矩阵
- 螺旋矩阵(c实现)
- objective-c中实现函数重载(黑魔法:__attribute__((overloadable)))
- objective-c中实现函数重载(黑魔法:__attribute__((overloadable)))
- Objective-c - nil, Nil, NULL和NSNull
- Object-C nil,Nil,NUll说明
- objective-c nil Nil NULL NSNULL总结
- objective-c -- nil / Nil / NULL / NSNull
- Objecitive-C中的nil
- Objective-c nil & 初始化
- C语言实现矩阵相乘
- 矩阵求逆用C语言实现
- 螺旋矩阵的C实现
- 螺旋矩阵C语言实现
- 矩阵乘法C语言实现
- C语言实现矩阵相乘
- UIBezierPath的使用
- 统计一篇英文文章中出现次数最多的10个单词
- url参数以及url的编码解码
- PLSQL:做实验代码模板
- 图形学第一课--听James D. Foley教授讲座后的一些感受
- 魔法矩阵c++实现(nil)
- 最短路径条数(floyd)
- register value overwritten by INVOKE
- *** stack smashing detected ***
- 超出范围的函数
- BestCoder Round #13 1003(单调性DP)HDU5064
- 函数是试图
- Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
- python : 批量下载R语言库包