Pascal Triangle就像C中的星形图案
我想在C中打印这个模式:
* * * * * * * * * *
我提出了类似的事情,但它没有完全一致,看到这个:
* * * * * * * * * * * * * * *
这有点倾向于右边。 我认为我有关于间隔星星的概念是正确的,但有些事情是错误的,有人可以帮我解决这个问题吗?
这是我的代码:
#include int main() { int sp, st, i, j, k; printf("Enter rows: "); scanf("%d", &st); sp = st * 2; for(i = 1; i <= st; i++) { for(j = 1; j <= i; j++) { if(j == 1) for(k = 1; k <= sp - i*2; k++) printf(" "); printf(" * "); } printf("\n"); } }
请注意,sp =空格数,st =最后一行中的星数
printf(" * ");
你应该只打印一个空格,可能是"* "
for(k = 1; k <= sp - i*2; k++)
将其更改为k < sp - i*2;
因为你在开始时打印的空间太多了。
此外,这在技术上并不是错误的,但我认为你应该将你的第三个for循环(带有k
循环)拉出你的第二个for循环。 你不需要对第二个for循环的每次迭代都进行检查,因为它只是打印初始空格。
这完全适用:
void main() { int i = 0, j = 0, k; for (i = 0; i < 17; i++) { for (k = 16; k >= i; k--) { printf(" "); } for (j = 0; j <= (i); j++) { printf("* "); } printf("\n"); } getch(); }