题目:

西邮oj1068

首先奉上答案:

#include<stdio.h>
int main(){
 char shuzi[11][4][4]={
  {{' ','_',' '},{'|',' ','|'},{'|','_','|'}},
  {{' ',' ',' '},{' ',' ','|'},{' ',' ','|'}},
  {{' ','_',' '},{' ','_','|'},{'|','_',' '}},
  {{' ','_',' '},{' ','_','|'},{' ','_','|'}},
  {{' ',' ',' '},{'|','_','|'},{' ',' ','|'}},
  {{' ','_',' '},{'|','_',' '},{' ','_','|'}},
  {{' ','_',' '},{'|','_',' '},{'|','_','|'}},
  {{' ','_',' '},{' ',' ','|'},{' ',' ','|'}},
  {{' ','_',' '},{'|','_','|'},{'|','_','|'}},
  {{' ','_',' '},{'|','_','|'},{' ','_','|'}},
 };
 int n[5];
 while(scanf("%d%d%d%d",&n[0],&n[1],&n[2],&n[3])!=EOF){
  for(int j=0;j<3;j++){
   for(int k=0;k<4;k++){
     printf("%s",shuzi[n[k]][j]);
   }
   printf("\n");
  }
 }
 return 0;
}

此答案思路:

其实刚开始看到要打印3x3的字符时,立即想到的是定义0~9十个二维字符组即矩阵。这里提醒新手同学一点:有人看到3x3直接定义"变量名 [3][3]"的变量,这是错误的。因为字符串末尾还有’\0’结束符,所以3x3个字节是不够的。言归正传继续思路叙述。当我定义了十个二维字符组时,发现0~9十个变量取用等很不方便,于是,我定义了一个三维字符组shuzi[11][4][4],直接对他初始化。
这里shuzi[p][m][l]里的p为几时就是数字几对应的3x3二维字符组,之后我又定义了数组n[5]来存储用户输入的四个数字。然后输出shuzi[n[i]]这里没有移动光标所以首先打印的是字符组[n[0]],[n[1]],[n[2]],[n[3]]的第一行然后再打印第二第三行。
这里还有一个小技巧,因为这是字符组有专门的占位符’%s’。所以我只用了两层循环,而并没有像多维数组一样三层循环逐个打印。

编写不易,求转发推荐,谢谢!!!

相关文章:

  • 2021-07-30
  • 2021-05-23
  • 2021-10-21
  • 2021-06-02
  • 2021-04-05
  • 2021-07-15
  • 2021-10-30
  • 2021-11-15
猜你喜欢
  • 2021-12-15
  • 2021-12-24
  • 2021-08-17
  • 2021-07-11
  • 2021-04-14
  • 2022-12-23
  • 2021-12-06
相关资源
相似解决方案