北航计算机机试13简单版八皇后

来源:互联网 发布:c语言结构体 编辑:程序博客网 时间:2024/05/01 22:42

题目描述
题目描述

如题,确实是简化了不少,连思路都说出来了….
按这个思路来的话

#include<stdio.h>#include<string.h>int main(){    int a[8][8];    char m;    int i,j,k;    int l,r;    int flag=0;    for(i=0;i<8;i++)        {            for(j=0;j<8;j++)             {                a[i][j]=0;            }        }        for(i=0;i<8;i++)        {            m=getchar();            if(m!='*')            {                int n=m-48;                for(j=0;j<8;j++) a[i][j]=1;//row                for(j=i+1;j<8;j++) a[j][n-1]=1;//col                for(j=i,k=n-1;j>0 &&k>0;j--,k--){}                l=j;   r=k;                for(l,r;l<=7 && r<=7; l++,r++) a[l][r]=1;//rightdown up                for(j=i,k=n-1;j>0 &&k<7;j--,k++){}                l=j;   r=k;                for(l,r;l<8 && r>=0; l++,r--) a[l][r]=1;//leftdown up            }        }        for(i=0;i<8;i++)        {            for(j=0;j<8;j++)            {                if(a[i][j]==0)                {                    printf("%d\n",j+1);                    flag=1;                }            }        }        if(flag==0)         {            printf("NO ANSWER\n");        }    return 0;    }

每次都栽在越界上,代码不规范,导致总是越界出现错误,在行列对角线赋值时,想当然以为只赋值下面的就好..

简单版的,都被我写麻烦了

正常的八皇后,是用回溯剪枝来写
后天写!!!!!!!!!!!!!

0 0
原创粉丝点击