gpt4 book ai didi

c - 用 C 语言将图案打印到屏幕上

转载 作者:行者123 更新时间:2023-11-30 19:32:39 26 4
gpt4 key购买 nike

我正在学习我的第一门编程类(class),对于我们分配的作业有一些问题。

我正在尝试将以下图案打印到屏幕上:

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

该模式应该包含 5 行,并且每个后续行都有上一行的 2 个附加星号,大致形成金字塔形状。

我一直致力于使用 for 循环创建代码来执行此操作(这是说明的一部分),到目前为止,这是我所拥有的:

int main ()
{
int row;
int col;

for (row = 1; row <= 5; row++) //rows
{
for (col = 1; col <= row; col++) //columns
{
printf_s("*");
}
printf_s("\n");
}
return 0;
}

我的代码的问题是我没有考虑正确对齐所需的空白空间。使用上面的当前代码,输出如下所示:

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

我希望有人能够指出正确的方向,告诉我如何重写代码以获得正确的对齐方式和正确的前导空格数。

提前谢谢您。

最佳答案

您有一个循环来打印星号,但在此之前您没有打印出任何空格。

并且您打印的星号数量不正确。例如,您的输出在第二行中只有 2 个 *,而本应有 3 个。

你可以做

printf("%*s", NUM, "");

打印 NUM 个空格,而不是使用单独的循环。

类似于

for (row = 0; row < ROWS ; row++) //rows
{
printf("%*s", ROWS-1-row, "");
for (col = 0; col < row*2+1; col++) //columns
{
printf("*");
}
printf("\n");
}

如果行编号从 0 开始,则每行中的星号数量是行号的两倍多。

ROWS 表示要打印的行数。

关于c - 用 C 语言将图案打印到屏幕上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46876538/

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