gpt4 book ai didi

c - 在 C 中看起来像三角形的输出

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

我写了这个程序,

include <stdio.h>

int main(){
int size = 5;

int row;
int col;

for (col=0; col<size; col++){
for (row=0; row<col;row++){
printf(" ");
}

for (row=0; row <(size-col) ; row++){
printf("*");
if(col<=size){
printf("*");
}
}
printf("\n");
}
return 0;
}

它应该像一个三角形

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

但是每一行都有一个额外的*。有什么问题?

非常感谢!

最佳答案

Mystical 有一个解决方案来解决您在迭代中打印两个星号的方式。在您的示例中使用标识符 rowcol 也会使事情比仅 ij 更令人困惑,尤其是因为外循环实际上是您的当前行。

你的困惑的另一种选择是(我希望这不是家庭作业,因为它没有被标记为这样):

int main(void)
{
int size = 5;
int i, j;

for (i = size; i > 0; i--) {

for (j = i; j < size; j++)
putchar(' ');

for (j = 0; j < i*2 - 1; j++)
putchar('*');

putchar('\n');
}

return 0;
}

您还可以将 i*2 - 1 放在一个变量中,这样它就不会在循环的每次迭代中计算(除非编译器发现您没有修改 i).

关于c - 在 C 中看起来像三角形的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7974608/

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