gpt4 book ai didi

c++ - 我是否正确地执行了这个程序?

转载 作者:太空宇宙 更新时间:2023-11-04 15:08:58 25 4
gpt4 key购买 nike

作业是完成带回溯的8皇后二维数组程序。

#include <iostream>

using namespace std;

int main() {
int b[8][8] = { 0 };
int r, c, i;
int count = 1;
b[0][0] = 1;
c = 0;

nextColumn:
c++;
if (c == 8)
goto print;
r =- 1;

nextRow:
r++;
if (r == 8)
goto back;
for (i = 0; i < c; i++) {
if (b[r][i] == 1)
goto nextRow;
}
for (i = 0; (r - i) >= 0 && (c - i) >= 0; i++) {
if (b[r - i][c - i] == 1)
goto nextRow;
}
for (i = 0; (r + i) < 8 && (c - i) >= 0; i++) {
if (b[r + i][c - i] == 1)
goto nextRow;
}
b[r][c] = 1;
goto nextColumn;
c--;
if (c == -1)
return 0;
r = 0;
while (b[r][c] != 1)
r++;
b[r][c] = 0;
goto nextRow;
cout << endl;
cout << "Result No." << count << endl;
cout << endl;
for (r = 0; r < 8; r++){
for (int c = 0; c < 8; c++){
cout << b [r][c];
}
cout << endl;
}
count++;
goto back;
}

最佳答案

嗯,不。

  • 一切都是一个大功能;它应该分解成小功能
  • 该程序——与所有程序一样——应该是自测试的。应该有一个函数,如果程序运行则返回 true,否则返回 false
  • 您使用的是单字符变量名;变量应该有有意义的名字。
  • 您正在为各个级别的 cout 写作;您应该执行计算、返回结果,然后(可选)将结果打印到 cout。
  • 您正在使用 goto,这通常被认为是有害的。而且您经常使用它,这总是被认为是有害的。

关于c++ - 我是否正确地执行了这个程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6688217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com