您的位置:首页 > 编程语言 > C语言/C++

2014 蓝桥杯 预赛 c/c++ 本科B组 第五题:打印图形 (12' )

2014-03-25 21:30 267 查看
第五题:打印图形 (12' )

    小明在X星球的城堡中发现了如下图形和文字:

rank=3

   * 

  * * 

 *   *  

* * * *

rank=5

               *                                                      

              * *                                                     

             *   *                                                    

            * * * *                                                   

           *       *                                                  

          * *     * *                                                 

         *   *   *   *                                                

        * * * * * * * *                                               

       *               *                                              

      * *             * *                                             

     *   *           *   *                                            

    * * * *         * * * *                                           

   *       *       *       *  

  * *     * *     * *     * *  

 *   *   *   *   *   *   *   * 

* * * * * * * * * * * * * * * *  

ran=6

                               *                                      

                              * *                                     

                             *   *                                    

                            * * * *                                   

                           *       *                                  

                          * *     * *                                 

                         *   *   *   *                                

                        * * * * * * * *                               

                       *               *                              

                      * *             * *                             

                     *   *           *   *                            

                    * * * *         * * * *                           

                   *       *       *       *                          

                  * *     * *     * *     * *                         

                 *   *   *   *   *   *   *   *                        

                * * * * * * * * * * * * * * * *                       

               *                               *                      

              * *                             * *                     

             *   *                           *   *                    

            * * * *                         * * * *                   

           *       *                       *       *                  

          * *     * *                     * *     * *                 

         *   *   *   *                   *   *   *   *                

        * * * * * * * *                 * * * * * * * *               

       *               *               *               *              

      * *             * *             * *             * *             

     *   *           *   *           *   *           *   *            

    * * * *         * * * *         * * * *         * * * *           

   *       *       *       *       *       *       *       *          

  * *     * *     * *     * *     * *     * *     * *     * *         

 *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *        

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *       

                                                                      

    小明开动脑筋,编写了如下的程序,实现该图形的打印。

#define N 70

void f(char a[]
, int rank, int row, int col)

{
if(rank==1){
a[row][col] = '*';
return;
}

int w = 1;
int i;
for(i=0; i<rank-1; i++) w *= 2;

____________________________________________;
f(a, rank-1, row+w/2, col);
f(a, rank-1, row+w/2, col+w);

}

int main()

{
char a

;
int i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++) a[i][j] = ' ';

f(a,6,0,0);

for(i=0; i<N; i++){
for(j=0; j<N; j++) printf("%c",a[i][j]);
printf("\n");
}

return 0;

}

    请仔细分析程序逻辑,填写缺失代码部分。

    通过浏览器提交答案。注意不要填写题目中已有的代码。也不要写任何多余内容(比如说明性的文字)

快速解题思路:如果能看到,那么肯定就可以直接写出来,如果半懂不懂的,那么就一点一点分析,先少了那句运行一次,然后看结果,自己再加点东西,大概一两步就能想到用循环递归。然后一个参数一个参数的试试,结果就能很快出来了。

答案:
f(a,rank-1,row, col + w/2)    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: