gpt4 book ai didi

c++ - 请求在 C++ 中嵌入 for 循环的帮助

转载 作者:行者123 更新时间:2023-12-01 14:48:50 28 4
gpt4 key购买 nike

我目前正在为一个 CS 类项目工作,我的任务是打印建筑物的 ASCII 模型。该项目的目标是允许用户输入一个整数,并将该整数作为建筑物的“部分”数量。下面我将给我的例子分解成几个部分。任何帮助将不胜感激,感谢任何人花时间阅读本文。

图案如下。第 x = ((x * 2) + 2) = 代码行数和建筑物的“宽度”。 (x = 任何整数值)

  |\/|
|/\| //section 0 ((section * 2) + 2)
/--\ 0 + 2 = 2


|\::/|
|:\/:| //section 1 ((section * 2) + 2)
|:/\:| 2 + 2 = 4
|/::\|
/----\


|\::::/|
|:\::/:|
|::\/::| //section 2 ((section * 2) + 2)
|::/\::| 4 + 2 = 6
|:/::\:|
|/::::\|
/------\

我设法找出了模式,但是在将多个循环相互嵌入时真的很难。到目前为止,我对这座建筑的最佳代表就是这个。
int i = 0;
int j = 0;
int size = 2;
int sizeAdj = (size * 2) + 2;
int leftMost = sizeAdj;


for(i = 0; i <= size; i++){
for(j = 0; j < 1; j++){
cout<<setw(leftMost + 1)<<"|";
cout<<"\\";
cout<<"/";
cout<<"|";
cout<<endl;
for(j = 0; j < 1; j++){
cout<<setw(leftMost + 1)<<"|";
cout<<"/";
cout<<"\\";
cout<<"|";
}
leftMost = leftMost - 1;
}
cout<<endl;
}

这将打印出以下内容。
  |\/|
|/\|
|\/|
|/\|
|\/|
|/\|

再次谢谢你。

最佳答案

老实说,我没有在您的代码中看到这种模式。

开始更简单。首先不用担心前面的空间:

|\/|
|/\| //section 0 ((section * 2) + 2)
/--\ 0 + 2 = 2


|\::/|
|:\/:| //section 1 ((section * 2) + 2)
|:/\:| 2 + 2 = 4
|/::\|
/----\


|\::::/|
|:\::/:|
|::\/::| //section 2 ((section * 2) + 2)
|::/\::| 4 + 2 = 6
|:/::\:|
|/::::\|
/------\

如果你有,你只需要添加 x前面的空格。

接下来,当我们添加“假”线时,对称性更加明显:
\----/
|\::/|
|:\/:| //section 1 ((section * 2) + 2)
|:/\:| 2 + 2 = 4
|/::\|
/----\

现在宽度和高度相同,我们可以使用
int width(int x) { return (x*2)+2; }

编写一个函数,返回给定位置的正确字符
char get_simple_pattern(int x,int row,int col) {
if (row == col) return '\\';
// ...
return ':';
}

使用两个循环打印它
void print_simple_pattern(int x) {
for (int row=0; row < width(x); ++row) {
for (int col=0; col < width(x); ++col) {
std::cout << get_simple_pattern(x,row,col);
}
std::cout << "\n";
}
}

一旦你有了这个正确的你必须
  • 添加 x每行前面的空格:std::cout << std::string(x,' ');
  • 跳过第一行
  • x 上添加一个循环
  • 关于c++ - 请求在 C++ 中嵌入 for 循环的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59905378/

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