2014年第五届蓝桥杯试题C/C++程序设计B组——打印图像

题目描述:
标题:打印图形

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

rank=5
  

ran=6
  

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

程序代码:

#define N 70

void f(char a[][N], int rank, int row, int col)
{
  //rank等于1的情形
  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, col+w/2); //填空
  f(a, rank-1, row+w/2, col);
  f(a, rank-1, row+w/2, col+w);
}

int main()
{
  char a[N][N];
  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(" ");
  }

  return 0;
}

原文地址:https://www.cnblogs.com/123qw/p/4415810.html