八皇后问题。。大家帮忙找下问题吧。。
老师要求是八皇后问题的第一个皇后的位置得由键盘输入,下面是我用C写的一个程序,检查没错误,但是没法输出,大家帮忙看一下吧。。。#include<stdio.h>
#include<math.h>
#define MAX 9
int board[MAX],m;
int check2(int n)
{int i;
for(i=1;i<n+1;i++)
{if(board[n+1]==board[i]||(n+1-i)==fabs(board[n+1]-board[i]))
return 0;}
return 1;}
int check1(int n)
{int i;
for(i=n;i<=m;i++)
{if(board[n-1]==board[i]||(n-1-i)==fabs(board[n-1]-board[i]))
return 0;}
return1;}
void put2(int n)
{int i;
for(i=1;i<MAX;i++)
{board[n+1]=i;
if(check2(n))
{if((n+1)==MAX-1)
for(i=m+1;i<MAX;i++)
printf("(%d,%d)",i,board[i]);
else put2(n+1);}
}
}
void put1(int n)
{int i;
for(i=1;i<MAX;i++)
{board[n-1]=i;
if(check1(n))
{if((n-1)==1)
{for(i=m;i>0;i--)
printf("(%d,%d)",i,board[i]);
put2(n);}
else put1(n-1);}
}
}
void main()
{int n;
printf("Input the placement:\n");
scanf("%d,%d",&m,&board[m]);
n=m;
board[n]=board[m];
put1[n];}
输入第一个皇后位置后,输出结果总是"Null pointer assignment",不知道哪里出现问题了。。。