首页 > 其他 > 详细

蓝桥杯历届试题 打印十字图

时间:2017-02-26 17:09:09      阅读:201      评论:0      收藏:0      [点我收藏+]

主要是把图形分析清楚,把循环理清楚就好。这里我是用了二维数组把图存下来,全都初始化为点号,然后通过循环来更改某些部分为$,最后输出二维数组。

 1 #include<iostream>
 2 #include<cstring>
 3 
 4 using namespace std;
 5 
 6 char num[130][130];
 7 
 8 void tu(int n)
 9 {
10     int cont=n;
11     int j=1;
12     int row=9+(n-1)*4;
13     for(int i = 3; i <= row/2+1; i=i+2)
14     {
15         num[j][i]=num[j+1][i]=num[j+2][i]=$;
16         num[j][row-i+1]=num[j+1][row-i+1]=num[j+2][row-i+1]=$;
17         num[row-j+1][i]=num[row-j][i]=num[row-j-1][i]=$;
18         num[row-j+1][row-i+1]=num[row-j][row-i+1]=num[row-j-1][row-i+1]=$;
19         
20         num[j+2][i-1]=num[j+2][i-2]=$;
21         num[j+2][row-i+2]=num[j+2][row-i+3]=$;
22         num[row-j-1][i-1]=num[row-j-1][i-2]=$;
23         num[row-j-1][row-i+2]=num[row-j-1][row-i+3]=$;
24         
25         int temp=i+1;
26         while(temp<=row/2+1)
27         {
28             num[j][temp]=num[j][row-temp+1]=num[row-j+1][temp]=num[row-j+1][row-temp+1]=$;
29             temp++;
30         }
31         j+=2;
32         temp=j;
33         while(temp<=row/2+1)
34         {
35             num[temp][i-2]=num[temp][row-i+3]=num[row-temp+1][i-2]=num[row-temp+1][row-i+3]=$;
36             temp++;
37         }
38     }
39     for(int i = 1; i <= row;i++)
40     {
41         for(int j = 1; j <= row; j++)
42             cout<<num[i][j];
43         cout<<endl;
44     }
45     
46 }
47 int main()
48 {
49     int n;
50     while(cin>>n)
51     {
52         memset(num,.,sizeof(num));
53         tu(n);
54     }
55     return 0;
56 }

 

蓝桥杯历届试题 打印十字图

原文:http://www.cnblogs.com/Xycdada/p/6444823.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!