武汉科技大学ACM :1008: 小t和小w

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("
");
18         }
19         for(i=1;i<=m;i++)
20         {
21             printf("*");
22         }
23         printf("
");
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("
");
35         }
36         printf("
");
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("
");
14         }
15         for(i=1;i<=n;i++)
16             printf("*");
17         printf("
");
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("
");
25         }
26         printf("
");
27     }
28     return 0;
29 }
原文地址:https://www.cnblogs.com/liuwt365/p/4154166.html