2011-02-22 回答
题目要求是输入什么? (即安什么便准来定义方阵的边长?)
追问:
只是要求打印如下方阵
追答:
#include
#include
void right(int i,int j,int n); //向右输入
void down(int i,int j,int n); //向下输入
void left(int i,int j,int n); //向左输入
void up(int i,int j,int n); //向上输入
void display(); //输出
int num[100][100];
int k=0;//圈数
int q;//宽度
void main()
{
int n;//宽度
int i,j;//循环
/*初始化*/
for(i=0;i<100;i++)
{
for(j=0;j<100;j++)
{
num[i][j] = 0;
}
}
printf("输入方阵宽度(1~99)");
scanf("%d",&n);
k=n;
if(n==1)
{
printf("1\n");
exit(1);
}
i=0;j=0;
num[i][j] = 1;
right(i,j+1,n);
}
void right(int i,int j,int n) //向右输入
{
for(q=1;q
{
num[i][j] = num[i][j-1]+1;
q++;
}
down(i+1,j-1,n);
}
void down(int i,int j,int n) //向下输入
{
for(q=1;q
{
num[i][j] = num[i-1][j]+1;
q++;
}
left(i-1,j-1,n);
}
void left(int i,int j,int n) //向左输入
{
for(q=1;q
{
num[i][j] = num[i][j+1]+1;
q++;
}
up(i-1,j+1,n);
}
void up(int i,int j,int n) //向上输入
{
if(n==2)//最内圈宽度为2
{
display();//输出
}
for(q=1;q
{
num[i][j] = num[i+1][j]+1;
q++;
}
num[i+1][j+1] = num[i+1][j]+1;//向内一圈的第一个数赋值
n=n-2;
if(n==1)//最内圈宽度为1
{
display();//输出
}
right(i+1,j+2,n);
}
void display() //输出
{
for(int i=0;i
{
for(int j=0;j
{
printf("%d ",num[i][j]);
}
printf("\n");
}
exit(1);
}
追问:
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/a.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
编译没问题,可是一运行就出现两个错误了
追答:
- -||| 你是啥编译器?
追问:
VC++6.0
追答:
能运行 你重启VC试试
追问:
还是这两个错误啊,我试过好几台电脑了……是不是新建有问题?
我选的WIN32 application然后选的C++source file
追答:
- -||| 你直接在桌面上键个.cpp的文件 打开就好 不用那么烦的
追问:
我对我无语了,怎么也运行不出来,悲剧了,还是采纳吧