/*1.输入一个奇数n,输出对角线长为n的实心或者空心的菱形图案
如当n=5时,有:
*
***
*****
***
*
*/
1.
#include
<
stdio.h
>
int main()
{
int x,y,m,n;
while (scanf( " %d " , & n) != EOF){
if (n % 2 == 0 )
n ++ ;
m = (n - 1 ) / 2 ;
for (y = 0 ;y <= n - 1 ;y ++ ){
for (x = 0 ;x <= n - 1 ;x ++ )
if (x + y == m || x + y == 3 * m || x - y == m || y - x == m)
printf( " * " );
else
printf( " " );
printf( " " );
}
}
return 0 ;
}
int main()
{
int x,y,m,n;
while (scanf( " %d " , & n) != EOF){
if (n % 2 == 0 )
n ++ ;
m = (n - 1 ) / 2 ;
for (y = 0 ;y <= n - 1 ;y ++ ){
for (x = 0 ;x <= n - 1 ;x ++ )
if (x + y == m || x + y == 3 * m || x - y == m || y - x == m)
printf( " * " );
else
printf( " " );
printf( " " );
}
}
return 0 ;
}
2.对称的方法
#include
<
stdio.h
>
int main()
{
int x,l,t1,t2,m,n;
while (scanf( " %d " , & n) != EOF){
if (n % 2 == 0 )
n ++ ;
m = n / 2 ;
for (l = 0 ,t2 = 1 ;l >= 0 ;l += t2){
for (x = 0 ,t1 = 1 ;x >= 0 ;x += t1){
if (x == m - l)
printf( " * " );
else
printf( " " );
if (x == m)
t1 =- 1 ;
}
printf( " " );
if (l == m)
t2 =- 1 ;
}
}
return 0 ;
}
int main()
{
int x,l,t1,t2,m,n;
while (scanf( " %d " , & n) != EOF){
if (n % 2 == 0 )
n ++ ;
m = n / 2 ;
for (l = 0 ,t2 = 1 ;l >= 0 ;l += t2){
for (x = 0 ,t1 = 1 ;x >= 0 ;x += t1){
if (x == m - l)
printf( " * " );
else
printf( " " );
if (x == m)
t1 =- 1 ;
}
printf( " " );
if (l == m)
t2 =- 1 ;
}
}
return 0 ;
}