Problem Description
小t最近学了C语言,他想要在女朋友小w面前展示一下自己的能力,小w喜欢如样例所示的图形,
想让小t写一个程序来输出这样的图形,小t拿到后感觉有点困难,小t不想在女朋友面前尴尬,
所以聪明的你来帮助帮助他吧。
Input
输入图形所占的列数n(n<20且n为奇数)(多组数据)
Output
输出图形,输出一个图形后面接一行换行
Sample Input
5
7
Sample Output
*
***
*****
***
*
*
***
*****
*******
*****
***
*
HINT
注意每个图形中一行最前面的空白由空格填充,最后一个'*'之后不要有多余的空格。
1 #include <stdio.h> 2 int main() 3 { 4 int m,i,j,k; 5 while(scanf("%d",&m) != EOF) 6 { 7 for(i=1;i<=m/2;i++) 8 { 9 for(j=i;j<=m/2;j++) 10 { 11 printf(" "); 12 } 13 for(k=1;k<=2*i-1;k++) 14 { 15 printf("*"); 16 } 17 printf("\n"); 18 } 19 for(i=1;i<=m;i++) 20 { 21 printf("*"); 22 } 23 printf("\n"); 24 for(i=1;i<=m/2;i++) 25 { 26 for(k=i;k<=2*i-1;k++) 27 { 28 printf(" "); 29 } 30 for(j=1;j<=m-2*i;j++) 31 { 32 printf("*"); 33 } 34 printf("\n"); 35 } 36 printf("\n"); 37 } 38 39 return 1; 40 }
其他代码:
1 #include<stdio.h> 2 int main() 3 { 4 int n,i,j,k; 5 while(~scanf("%d",&n)) 6 { 7 for(i=1;i<=n/2;i++) 8 { 9 for(j=1;j<n/2+2-i;j++) 10 printf(" "); 11 for(k=n/2+2-i;k<=n/2+i;k++) 12 printf("*"); 13 printf("\n"); 14 } 15 for(i=1;i<=n;i++) 16 printf("*"); 17 printf("\n"); 18 for(i=1;i<=n/2;i++) 19 { 20 for(j=1;j<=i;j++) 21 printf(" "); 22 for(k=i+1;k<=n-i;k++) 23 printf("*"); 24 printf("\n"); 25 } 26 printf("\n"); 27 } 28 return 0; 29 }