gpt4 book ai didi

c++ - * 三角形图案设计问题

转载 作者:行者123 更新时间:2023-11-28 02:02:19 24 4
gpt4 key购买 nike

我是编程新手,面临一个小困境,我正在尝试打印这样的三角形:

     *
**
***
****
*****

该程序背后的想法是提示用户输入行数,因此在此示例中,他们将输入 5 作为行数。

这是我到目前为止所做的。

#include <iostream>


using namespace std;
int main(){

int i, j, rows;

printf("Enter the maximum number of stars (between 1 and 10 inclusive):\n");
scanf("%d",&rows);

for(i=1; i<=rows; i++)
{
for (j=1; j<=10-i; j++) // for space
printf(" ");

for(j=1; j<=i; j++)
{
printf("*");
}
printf("\n");
}

}

它接近于获得正确的间距,但是所有“*”字符开始缩进 5 个空格。

 _____    *
_____ **
_____ ***
_____ ****
_____*****

其中 _ 代表一个空格,我不确定如何解决这个问题,我希望它从执行窗口的最左侧开始。

如果需要,很乐意详细说明问题。

干杯。

最佳答案

循环生成的输入前有空格:

for (j=1; j<=10-i; j++) // for space
printf(" ");

请注意,无论 rows 中包含什么,此循环都会运行到 10

要修复代码,您需要使循环中的最大 行数不是10

也就是说,您正在使用 C++,所以我建议您使用该语言,这对于 setw 来说是一个非常简单的问题。 :

int rows;

cin >> rows;

for(auto i = 1; i <= rows; ++i) {
cout << setw(rows) << string(i, '*') << endl;
}

Live Example

关于c++ - * 三角形图案设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38973874/

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