| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 506 人关注过本帖
标题:八皇后问题。。大家帮忙找下问题吧。。
取消只看楼主 加入收藏
霖海听涛
Rank: 2
等 级:论坛游民
帖 子:16
专家分:22
注 册:2010-7-18
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:0 
八皇后问题。。大家帮忙找下问题吧。。
老师要求是八皇后问题的第一个皇后的位置得由键盘输入,下面是我用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",不知道哪里出现问题了。。。
搜索更多相关主题的帖子: 皇后 
2010-07-18 14:16
快速回复:八皇后问题。。大家帮忙找下问题吧。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.056129 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved