请教这段程序错在哪,运行时输入15会报错,输入其它数字,可能正确运行,什么原因呢
请问这段程序错在哪,运行时输入15会报错,输入其它数字,可能正确运行,什么原因呢
------解决方案--------------------
表示 运行后输入 15 后没有错啊
------解决方案--------------------
我运行没错啊..
你报什么错?
------解决方案--------------------
- C/C++ code
#include <string.h> #include <iomanip> #include <iostream> using namespace std; class Njie { public: Njie(int m = 1); void setNjie(); void print(); ~Njie(); private: int *buffer; int n; }; Njie::Njie(int m) { n = m; buffer = new int[n*n]; memset(buffer,0,n*n*sizeof(int)); } Njie::~Njie() { delete []buffer; buffer=NULL; } void Njie::setNjie() { int i,row,line; // row 行 line 列 int a = 0, k = 1; int b = (n-1)/2; buffer[b] = 1; for(i=0; i<n*n; i++) { row = a; line = b; a = (a + n - 1) % n; b = (b + n + 1) % n; if(buffer[a*n+b] == 0) { buffer[a*n+b] = ++k; } else { a = row + 1; b = line; buffer[a*n+b] = ++k; } } } void Njie::print() { int i,j; for(i=0; i<n; i++) for(j=0; j<n; j++) { cout << setw(5) <<buffer[i*n+j]; if((j+1) == n) { cout<<endl; } } } void main() { int n; cout<<"输入N:"; cin>>n; Njie m = n; m.setNjie(); m.print(); }
------解决方案--------------------
表示 运行后输入 15 后没有错啊
------解决方案--------------------
我运行没错啊..
你报什么错?
------解决方案--------------------