gpt4 book ai didi

c++ - 在 C++ 中打印盒子模式

转载 作者:搜寻专家 更新时间:2023-10-31 00:53:32 25 4
gpt4 key购买 nike

我正在编写一个程序来打印 2 个框,如下图所示: enter image description here

我试过下面的程序,但它没有给出预期的输出。

#include<iostream>

using namespace std;

int main()
{
// Considering each box as a separate one
for(int i = 1; i <= 2; i++)
{
cout << "+---+ " << endl;
cout << "| " << i << "| " << endl;
cout << "| | " << endl;
cout << "| | " << endl;
cout << "+---+ ";
}

return 0;
}

我得到的输出:

+---+ 
| 1|
| |
| |
+---+ +---+
| 2|
| |
| |
+---+

请在我遗漏的地方帮助我。任何帮助或提示将不胜感激。

最佳答案

您不能将每个框视为一个单独的框,因为您将它们作为字符打印到终端中,这是逐行完成的。您必须先打印所有框的顶部,然后是所有框的下一行等等。

如果您要打印的盒子数量可变,这就是解决方案:

int main() {
using namespace std;
unsigned numberOfBoxes = 10;

for (unsigned i = 0; i < numberOfBoxes; ++i)
cout << "+---+" << (i == numberOfBoxes - 1 ? "\n" : " ");
for (unsigned i = 0; i < numberOfBoxes; ++i)
cout << "| " << i << "|" << (i == numberOfBoxes - 1 ? "\n" : " ");
for (unsigned i = 0; i < numberOfBoxes; ++i)
cout << "| |" << (i == numberOfBoxes - 1 ? "\n" : " ");
for (unsigned i = 0; i < numberOfBoxes; ++i)
cout << "| |" << (i == numberOfBoxes - 1 ? "\n" : " ");
for (unsigned i = 0; i < numberOfBoxes; ++i)
cout << "+---+ ";
}

(i == numberOfBoxes - 1 ? "\n" : " ")如果循环在它的最后一次迭代中,是否只是添加新行或添加一个空格。

关于c++ - 在 C++ 中打印盒子模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48388326/

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