Loading

打印沙漏

1.实验代码

 1 #include <stdio.h>
 2 int main(int argc, char *argv[]) 
 3 {
 4     int i,su,k,j,m,n,kong,ge;
 5     char fuhao;
 6     while(1) 
 7     {
 8         scanf("%d %c",&su,&fuhao);
 9         if(su>0&&su<=1000)
10                     break;
11     }
12     k=su-1;
13     for (i=3;k>=2*i;i+=2) 
14     {
15         k=k-2*i;
16     }
17     i-=2;
18     n=i;
19     for (kong=0;i>=1;i-=2,kong++) 
20     {
21         for (j=0;j<kong;j++)
22                     printf(" ");
23         for (j=0;j<i;j++)
24                     printf("%c",fuhao);
25         printf("\n");
26     }
27     ge=kong-2;
28     for(m=3;m<=n;m+=2,ge--){
29         for(j=0;j<ge;j++)
30         printf(" ");
31         for(j=0;j<m;j++)
32         printf("%c",fuhao);
33         printf("\n");
34     }
35     printf("%d",k);
36     return 0;
37 }

2.设计思路

将沙漏分成三部分,上中下,发现空格和符号规律符合等差数列,然后用公式一步处理完。

 

3.实验过程中遇到的问题

之前没有找到规律想整体解决,后面发现要分部解决

 

4.运行结果截图

 

posted @ 2019-02-21 13:35  eveilcoo  阅读(172)  评论(0编辑  收藏  举报