为了账号安全,请及时绑定邮箱和手机立即绑定

C++八皇后改成C语言

C++八皇后改成C语言

C
慕妹8108780 2017-06-28 19:54:58
#include <iostream>using namespace std;const int o = 9;int r[9];bool c[9];bool k_1[17];bool k_minus1[17];char stage[9][9];void tryR(int i){    if (i == 9)    {        for (int k = 1; k < 9 ;k++)            cout << r[k] << " ";         exit(0);     }    for (int j = 1; j < 9; j++)    {        if (stage[i][j] != '#' && c[j] && k_1[i - j + o] && k_minus1[i + j])        {            r[i] = j;            c[j] = false;            k_1[i - j + o] = false;            k_minus1[i + j] = false;            tryR(i + 1);            k_minus1[i + j] = true;            k_1[i - j + o] = true;            c[j] = true;        }    }}int main(){    for (int i = 1; i < 9; i++)    {        c[i] = true;        for (int j = 1; j < 9; j++)        {            cin >> stage[i][j] ;            k_1[i - j + o] = true;            k_minus1[i + j] = true;        }    }    tryR(1);    return 0;} C忘得差不多了 怎么改呢 还有for循环换成while 就会死循环 怎么解决 求解求解
查看完整描述

4 回答

?
helloei

TA贡献4条经验 获得超9个赞

不错啊


查看完整回答
反对 回复 2019-05-31
?
慕尼黑1569790

TA贡献3条经验 获得超0个赞

for和while可以互相转换的 但用法格式不同 死循环是你代码出了问题

查看完整回答
反对 回复 2017-07-01
?
慕尼黑1569790

TA贡献3条经验 获得超0个赞

其他一样

查看完整回答
反对 回复 2017-07-01
?
慕尼黑1569790

TA贡献3条经验 获得超0个赞

把cincout改成scanf printf就行了

查看完整回答
反对 回复 2017-07-01
  • 4 回答
  • 1 关注
  • 1797 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信