设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 205|回复: 2
打印 上一主题 下一主题

域问题

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-4 01:42:55 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
程序代码:
#include <iostream>
using namespace std;
int x[8];
//static int count=0; //定义这里? 位置1

bool right(int*,int);//判断位置是否合适
void print(int*,int);//打印位置
void queen(int ,int);
int main()
{
    queen(1,8);
    system("pause");
    return 0;
   
}

bool right(int* x,int step)
{
     for(int i=1;i<step;i++)
     {
     if(x[step]==x[i]||abs(x[step]-x[i])==abs(step-i))
     return false;
     }
     return true;
}

void queen(int step,int n)
{
   static int count=0;//定义这里? 位置2
   x[step]=0;
   for(int i=1;i<=n;i++)
   {
           x[step]=i;
           if(right( x,step))
           {
           if(step==n)
           {
                        
                         count++;
                         cout<<count<<"  ";
                         print(x,n);
                         return;
           }
           else
           queen(step+1,n);
           }
   }
}

void print(int* x,int len)
{
     for(int i=1;i<=len;i++)
     cout<<i<<"行"<<x[i]<<"列";
     cout<<endl;
}
3#
发表于 2009-11-4 01:42:57 | 只看该作者
1.2和都可以.但是按照最小特权原则

也就是那里用就定义到哪里.他只在函数queen里有作用
就定义到这里面就够了

1位置意思是全局的静态变量 在多个地方如多个函数都要用到
它就可以定义成全局的.

楼下补充...
回复 支持 反对

使用道具 举报

2#
发表于 2009-11-4 01:42:55 | 只看该作者
static int count=0;//应该定义在哪儿?为什么谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-19 07:25 , Processed in 0.069745 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表