要求通过输入一个字符,并且打印一个由该字符组成的5行菱形(可以推广到n行)
实现代码如下:
#include <stdio.h>
int main(void)
{
char ch;
int i;
int j;
scanf("%c", &ch);
for(i = 1; i <= 5; i++)
{
if(i == 5 / 2 + 1)
{
for(j = 1; j <= 5; j++)
{
printf("%c", ch);
}
printf("\n");
}
else
{
if(i <= 2)
{
for(j = 1; j <= (5 - i) / 2; j++)
{
printf(" ");
}
for(j = 1; j <= 2 * i - 1; j++)
{
printf("%c", ch);
}
for(j = 1; j <= (5 - i) / 2; j++)
{
printf(" ");
}
printf("\n");
}
else
{
for(j = 1; j <= (5 - ((5 + 1) - i)) / 2; j++)
{
printf(" ");
}
for(j = 1; j <= 2 * ((5 + 1) - i) - 1; j++)
{
printf("%c", ch);
}
for(j = 1; j <= (5 - ((5 + 1) - i)) / 2; j++)
{
printf(" ");
}
printf("\n");
}
}
}
return 0;
}
ps:本人是C语言小白,写出的代码感觉冗余度较高,希望见谅。