如何用C语言实现输入数字后输出对应行数的O字符等腰三角形?
C语言等腰三角形字符打印实现方案
核心逻辑
每行的输出规则可以拆解为固定规律(i为当前行数,从1开始计数,num为用户输入的总行数):
- 前置空格数量:
num - i个 - O字符数量:
2 * i - 1个 - 每行输出完成后执行换行操作
你之前输出单行长串带空格的O,通常是没有拆分逐行输出逻辑、或者打印O时误加了空格分隔导致的,按分层循环实现即可解决问题。
完整可运行代码
#include <stdio.h> int main() { int num; // 读取用户输入的有效行数 scanf("%d", &num); // 外层循环遍历每一行 for (int i = 1; i <= num; i++) { // 输出当前行的前置空格 for (int space_cnt = 1; space_cnt <= num - i; space_cnt++) { printf(" "); } // 输出当前行的O字符 for (int o_cnt = 1; o_cnt <= 2 * i - 1; o_cnt++) { printf("O"); } // 换行进入下一行 printf("\n"); } return 0; }
测试效果
输入num=4时,输出完全匹配需求格式:
O
OOO
OOOOO
OOOOOOO
内容的提问来源于stack exchange,提问作者Guga Gamer
相关产品推荐
相关产品推荐

