首页 > 电脑

可以每一句详细解释一下这个代码吗,八皇后,我是大一学生,刚刚接触c++,望大神解答

更新时间2018-11-25 04:04:30

#include<iostream>

using namespace std;

int vis_clm[8], vis_diag[15], vis_diag2[15];

int res[100][8], cnt = 0;

void search(int l)

{

if(l>=8)

{

++cnt;

return;

}

for(int c=0; c<8; ++c)

{

if(vis_clm[c]||vis_diag[c-l+7]||vis_diag2[c+l]) continue;

vis_clm[c]=1;

vis_diag[c-l+7]=1;

vis_diag2[c+l]=1;

res[cnt][l]=c;

search(l+1);

vis_clm[c]=0;

vis_diag[c-l+7]=0;

vis_diag2[c+l]=0;

}

}

int main()

{

search(0);

cout<<cnt<<endl;

for(int i=0;i<cnt;++i)

{

cout<<"The "<<i+1<<" th solution:"<<endl;

for(int l=0;l<8;++l)

{

for(int k=0;k<res[i][l];++k)

cout<<'.';

cout<<'*';

for(int k=0;k<7-res[i][l];++k)

cout<<'.';

cout<<endl;

}

cout<<endl<<endl;

}

system("pause:");

return 0;

}


计算机语言不可能每一行解释的(看程序主要要理解的是解决问题的思路和方法而不是每一句的语法)

若你是刚刚接触c++,那就应该自己试着写简单的程序而不是去看你无法理解的程序,看别人的程序对初学者没有意义的(我一向的观点)


相关标签:大神

上一篇:编写删除双向链表第i个结点的程序。求解,谢谢

下一篇:html里面清除小手的代码