🐒博客名:苏sir很奈斯
📚学习格言:别人可以拷贝我的模式,但不能拷贝我不断往前的激情。
描述
牛牛尝试用键盘读入一个字符,然后在屏幕上显示一个用这个字符填充的对角线长5个字符,倾斜放置的菱形。
输入描述:
输入一个char类型字符
输出描述:
输出一个用这个字符填充的对角线长5个字符,倾斜放置的菱形
解题思想:
1、首先设置一个变量n,设它为上半部分包括对角线的一行,即n=3;
2、利用for循环打印三行,再嵌套循环打印空格,再循环打印一次增加两个字符
3、打印下半部分,即n-1行。
4、打印对角线下面部分的空格每行加1,
5、打印每行的字符依次减少两个。
具体实现请看代码部分
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
char ch;
scanf("%c", &ch);
int n = 3;//首先设包括对角线内的上半部分有行
for (int i = 1; i < n + 1; i++)//打印第一行打包含对角线的第n行
{
for (int j = 0; j < n - i; j++)
printf(" ");//先打印每行的空格
for ( int j = 0; j < 2 * i - 1; j++)
printf("%c", ch);//在打印每行空格和字符,有2*i-1个
printf("\n");
}
for (int i = 1; i < n; i++)//对角线部分下面只有n-1行
{
for (int j = 0; j < i; j++)
printf(" ");//对角线部分下面的空格每行加1,第i行有i个空格
for ( int j = 0; j < 2 * (n - i) - 1; j++)
printf("%c", ch);//每行的字符依次减少两个,有2*(n-i)-1个
printf("\n");
}
return 0;
}