C语言星型金字塔打印程序:现有代码不符预期,求匹配目标输出的正确代码
可直接运行的星型金字塔C语言实现
原代码存在两处导致输出不符的问题:
- 前置缩进循环中使用
printf(" ")输出两个连续空格,每行缩进量超出预期 - 打印星号时使用
printf("* ")额外添加后缀空格,星号之间存在多余间隙,不符合目标紧凑输出要求
修正后的完整代码:
#include <stdio.h> int main() { int i, space, rows, k = 0; printf("Enter the number of rows: "); scanf("%d", &rows); for (i = 1; i <= rows; ++i, k = 0) { // 打印每行前置缩进空格 for (space = 1; space <= rows - i; ++space) { printf(" "); } // 打印当前行的星号 while (k != 2 * i - 1) { printf("*"); ++k; } printf("\n"); } return 0; }
输入目标行数后,输出为居中对齐的紧凑星型金字塔,每行星号数量为2i-1个,缩进量随行数逐行递减,完全匹配目标输出样式。
内容的提问来源于stack exchange,提问作者Manthan Ankolekar
相关产品推荐
相关产品推荐

