问题1.
牛牛尝试用键盘读入一个字符,然后在屏幕上显示一个用这个字符填充的对角线长5个字符,倾斜放置的菱形。
输入描述:
输入一个char类型字符
输出描述:
输出一个用这个字符填充的对角线长5个字符,倾斜放置的菱形
示例1
输入:
#
复制输出:
# ### ##### ### #
分析:
1.空格和字符的循环输出解决问题
2.对称问题解决一半,用两次嵌套for循环,下半部分只需要循环条件倒过来即可
3.除了引入i和j以外,需要引入行数变量n,i=循环打印几行,j改行循环打印几个空格和字符,n控制条件判断(最好设置,便于用户理解)
4.条件设置,每行空格和只需要用j与i或者与i&n的表达式表达出即可
#include <stdio.h>
int main()
{
char ch;
scanf("%c", &ch);
int i, j;
int n = 3; //设包括对角线在内的上半部分有n行
for(i = 1; i <= n; i++) //打印第1行到对角线(第n行)
{
for(j = 0; j < n-i; j++)
{
printf(" "); //先打印每行的空格,第i行有n-i个空格
}
for(j = 0; j < 2*i-1; j++)
{
printf("%c", ch); //再打印每行的字符,第i行有2*i-1个
}
printf("\n"); //打印完每行空格和字符,要换行
}
for(i = 1; i < n; i++) //对角线以下部分只有n-1行,从1到n-1
{
for(j = 0; j < i