📄 ba.cpp
字号:
//数组的下标表示第几个人(第几行),数组的值表示人所在列的位置(第几列)
#include<iostream.h>
#include"duizhan.h"
#define number 8
int a[number]={0};
bool test(int i){
for(int x=i-1;x>=0;x--)
{
if(a[i]==a[x]) return false;
if(a[i]==i+1 && a[x]==x+1) return false;
};
return true;
};
void queue(int m,struct store &s){
int i=m;
int t=i-1;
a[i]=a[i]+1;
for(int r=a[i];r<number;r++)
{
if(test(i)==true) { push(s,a[i]);break;}
else {
a[i]++;
if(test(i)==true)
{ push(s,a[i]);break;};
};
};
if(test(i)==false)
{
a[i]=0;
pop(s);
queue(t,s);
queue(t+1,s);
};
};
void main(){
struct store s;
initstack(s);
for(int i=0;i<number;i++)
queue(i,s);
cout<<"one of the right position is:"<<endl;
for(int k=0;k<number;k++)
cout<<"第"<<number-k<<"个人的位置是: "<<a[k]<<endl;
cout<<"the picture is:"<<endl;
for(int r=0;r<number;r++)
{
cout<<a[r]<<":";
for(int n=0;n<number;n++){
if(n==a[r]-1) cout<<"*";
else cout<<"-";
};
cout<<endl;
};
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -