请问这个程序问什么运行不下去,该怎么改?
#include<stdio.h>#define Max 100
int Input()
{
int i[Max],*p=NULL,j=0;
p=i;
printf("输入多个测试集,以0结束......\n");
i[j]=-1;
while(i[j]!=0)
{j++;
scanf("%d",&i[j]);
}
return *p;
}
int Search(int *p,int m)
{
while(*p!=0)
{
if(*p==m)
return 1;
p++;
}
return 0;
}
void main(void)
{
int m,mm,i,j,k,ni,nj,s,*h=NULL;
int magic[Max][Max];
*h=Input();
printf("请输入你要查找的幻方的阶数:");
scanf("%d",&m);
for(i=0;i<m;i++)
{
magic[i][j]=0;
if((m>0)&&(m%2!=0))
{
s=Search(h,m);
if(s==1)
{
mm=m*m;
i=0;j=m/2;
for(k=1;k<=mm;k++)
{
magic[i][j]=k;
if(i==0)
ni=m-1;
else
ni=i-1;
if(j==m-1)
nj=0;
else
nj=j+1;
if(magic[ni][nj]==0)
{i=ni;
j=nj;
}
else
i++;
}
printf("查找成功!\n幻方如下\n");
for(j=0;j<m;j++)
printf("%4d",magic[i][j]);
printf("\n");
}
else
printf("在测试集中没有找到你要的幻方!!!\n");
}
else
printf("输入错误,该程序只能查抄奇数阶幻方!!\n");
}
}
[此贴子已经被作者于2017-2-15 15:06编辑过]