c语言三阶和四阶的换方
我要一个完整的过程,谢谢哈··我是才学习C语言的~~为了交作业~~VERY THANKS!~
追问:不知道是否对··还是感谢你咯~~谢谢!!
答案:/**
* n阶幻方绦?br> * 完成者:meteor135
* 完成日期:2003.9.8
* 编译环境:VC6.0
*/
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
void showFangzhen(int n);
int main()
{
//输出10组幻方,修改这个数字可以得到任意阶幻方
for(int n = 0; n < 10; n ++)
showFangzhen(2*n+1);
cout<<"Press enter to quit!";
cin.get();
return 0;
}
void showFangzhen(int n)
{
if(!(n%2)) return;
int i,j,**array;
//为指针分配动态内存
array=new int*[n];
for(i=0; i<n; i++)
{
array[i] = new int[n];
}
//初始化数组
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
array[((n-1)/2+i-j+n)%n][(3*n-1+j-2*i)%n]=i*n+j+1;
//or
//array[(n+2*i-j)%n][((n-1)/2+n+j-i)%n]=i*n+j+1;
}
}
//输出n阶幻方
cout<<n<<"阶幻方:"<<endl;
for(i=0; i<n; i++)
{
for(j=0;j<n;j++)
{
cout<<setw(int(log10(n*n))+2)<<array[i][j];
}
cout<<endl;
}
cout<<endl;
//释放动态内存
for(i=0; i<n; i++)
{
delete[] array[i];//原来是 delete array[i];
}
delete[] array;
}
说清楚一点
楼上的是C吗,我学的不好,可我怎么什么也看不懂啊
那是用C++编的。如果要的话,我可以用C语言给你编,我们共同进步学习
上一个:求C语言中的32个关键字及其意思
下一个:关于C语言课题设计(学生信息管理系统)