C语言打印菱形
思路:想要打印一个菱形,可以分为上下两部分,通过观察可以发现上半部分星号的规律是 1 3 5 7故理解为 2×对应行数 + 1 ,空格是4 3 2 1故理解为 行数-对应行数-1。
上半部分代码如下
for ( int i = 0 ; i < line; i++ )
{
int j = 0 ;
for ( j = 0 ; j < line - i - 1 ; j++ )
{
printf ( " " ) ;
}
for ( j = 0 ; j < 2 * i + 1 ; j++ )
{
printf ( "*" ) ;
}
printf ( "\n" ) ;
}
思路:观察下半部分可以看出,空格和对应行数相同,*号是7 5 3 1 满足2×(行数 - 对于行数值- 1) -1。
代码如下
for ( int i = 0 ; i < line - 1 ; i++ )
{
int j = 0 ;
for ( j = 0 ; j <= i; j++ )
{
printf ( " " ) ;
}
for ( j = 0 ; j < 2 * ( line - 1 - i) - 1 ; j++ )
{
printf ( "*" ) ;
}
printf ( "\n" ) ;
}
总代码
# define _CRT_SECURE_NO_WARNINGS
# include <stdio.h> nt main ( )
{
int line = 0 ;
scanf ( "%d" , & line) ;
for ( int i = 0 ; i < line; i++ )
{
int j = 0 ;
for ( j = 0 ; j < line - i - 1 ; j++ )
{
printf ( " " ) ;
}
for ( j = 0 ; j < 2 * i + 1 ; j++ )
{
printf ( "*" ) ;
}
printf ( "\n" ) ;
}
for ( int i = 0 ; i < line - 1 ; i++ )
{
int j = 0 ;
for ( j = 0 ; j <= i; j++ )
{
printf ( " " ) ;
}
for ( j = 0 ; j < 2 * ( line - 1 - i) - 1 ; j++ )
{
printf ( "*" ) ;
}
printf ( "\n" ) ;
}
return 0 ;
}