题目链接:
字符圣诞树_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/0fae60c3b5c64699b7c0f031c2187dde?tpId=107&gioEnter=menu
知识点:
1. 如果想要用 printf ( ) 函数打印出字符来,就必须在格式转换中将 %d 改写成 %c,初学者容易忘记这一点,导致输入的字符以ASCII码值打印出来
2. 这道题有俩种解法,一种是通过 printf ( )函数来实现程序,另一种解法是利用循环,本文着重讲解第二种解法
3. 先将第一种解法列出:
4. 第二种解法(推荐):
代码解释:
其中最外层的 for 循环内嵌了2个 for 循环,第一个 for 循环打印每一行第一个字符前的空格,
第二个内嵌的 for 循环是用来打印每一行的内容
对于初学者,因为每一行的内容的字符与字符之间含有空格,所以容易搞不清楚每一行的内容需要怎么实现,
这里关键的一个思路是将一个字符和其后面的一个空格看成一个整体,然后利用循环,根据每一行的字符+空格数去编写代码
这里还有一点容易出错,就是在内嵌的第二个 for 循环的判断表达式,
初学者容易将 <= (这里作个小说明,运算符 < 与 = 之间不能有空格)写成 <
这是因为他没有意识到这是一个"行“ 打印,而且其右值是在随着行数在变化