题目:
首先奉上答案:
#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’。所以我只用了两层循环,而并没有像多维数组一样三层循环逐个打印。
| 编写不易,求转发推荐,谢谢!!! |
|---|