B2005 字符三角形

该文描述了一个C++程序,它接收一个字符输入,然后按照特定格式输出一个底边长5个字符,高3个字符的等腰三角形。程序通过控制空格数量来定位字符的位置,形成三角形效果。

题目描述
给定一个字符,用它构造一个底边长 5 个字符,高 3 个字符的等腰字符三角形。

输入格式
输入只有一行,包含一个字符。

输出格式
该字符构成的等腰三角形,底边长 5 个字符,高 3 个字符。

输入样例

*

输出样例

  *
 ***
*****

思路分析
组成三角形的字符是输入的。所以需要一个char类型的变量 c 存储读入的字符。
观察三角形,第1行的 *之前有 2 个空格;第 2 行的 ***之前有 1 个空格;第 3 行的 *****之前没有空格。所以,前两行在输出*之前要先输出对应个数的空格。
注意:连续输出多次变量时,也需要单独输出。因为计算机会认为ccc或者ccc

以下是几种使用C语言实现B2005字符三角形的代码: ### 代码示例1 ```c /* B2005 字符三角形 */ #include <stdio.h> #define N 3 int main() { char ch; scanf("%c", &ch); for (int i = 1; i <= N; i++) { for (int j = N - i; j > 0; j--) putchar(' '); for (int j = 1, end = 2 * i - 1; j <= end; j++) putchar(ch); putchar('\n'); } return 0; } ``` 此代码定义了一个常量 `N` 表示三角形的行数,通过 `scanf` 读取输入的字符,使用两层嵌套的 `for` 循环,外层循环控制行数,内层的第一个循环控制每行前面的空格数,第二个循环控制每行输出的字符数,最后使用 `putchar('\n')` 换行 [^1]。 ### 代码示例2 ```c #include<stdio.h> main() { char c; scanf("%c",&c); int i,j; for(i=1;i<=3;i++) { for(j=1;j<=3-i;j++) printf(" "); for(j=1;j<=2*i-1;j++) printf("%c",c); printf("\n"); } } ``` 该代码同样通过 `scanf` 读取输入字符,使用两层嵌套的 `for` 循环,外层循环控制行数,内层第一个循环输出每行前面的空格,第二个循环输出每行的字符,最后换行 [^3]。 ### 代码示例3 ```c #include <stdio.h> int main() { char a; scanf("%c",&a); printf(" %c\n",a); printf(" %c%c%c\n",a,a,a); printf("%c%c%c%c%c",a,a,a,a,a); return 0; } ``` 此代码直接通过 `scanf` 读取字符,然后使用 `printf` 函数按固定格式输出字符三角形,没有使用循环 [^4]。 ### 代码示例4 ```c #include <stdio.h> int main() { char a; int i,j; scanf("%c",&a); //外循环控制有几层 for(i=1;i<=3;i++) { //第一个内循环控制每层空格个数 for(j=1;j<=3-i;j++) printf(" "); //第二个内循环控制每层字符个数 for(j=1;j<=2*i-1;j++) printf("%c",a); printf("\n"); } return 0; } ``` 该代码也是用 `scanf` 读取字符,通过两层嵌套的 `for` 循环,外层控制行数,内层分别控制空格和字符的输出数量,最后换行 [^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值