7-8 打印数字艺术字 (5分)
以下程序打印“1949”的艺术字,请改造以下代码,使之打印“2019”的艺术字。请注意不要额外删除、增加、改变变量,也请注意要打印空格。
#include <stdio.h>
int main()
{
char space = ' ', mark = '|';
printf("\n");
// 1
printf("%c%c%c\n", mark, space, space);
printf("%c%c%c\n", mark, space, space);
printf("%c%c%c\n", mark, space, space);
printf("%c%c%c\n", mark, space, space);
printf("%c%c%c\n", mark, space, space);
printf("\n");
// 9
printf("%c%c%c\n", mark, mark, mark);
printf("%c%c%c\n", mark, space, mark);
printf("%c%c%c\n", mark, mark, mark);
printf("%c%c%c\n", space, space, mark);
printf("%c%c%c\n", mark, mark, mark);
printf("\n");
// 4
printf("%c%c%c\n", mark, space, mark);
printf("%c%c%c\n", mark, space, mark);
printf("%c%c%c\n", mark, mark, mark);
printf("%c%c%c\n", space, space, mark);
printf("%c%c%c\n", space, space, mark);
printf("\n");
// 9
printf("%c%c%c\n", mark, mark, mark);
printf("%c%c%c\n", mark, space, mark);
printf("%c%c%c\n", mark, mark, mark);
printf("%c%c%c\n", space, space, mark);
printf("%c%c%c\n", mark, mark, mark);
printf("\n");
return 0;
}
输入格式:
本题无输入。
输出格式:
遵循原有代码的格式。
输入样例:
输出样例:
打印效果如下:
|||
|
|||
|
|||
|||
| |
| |
| |
|||
|
|
|
|
|
|||
| |
|||
|
|||
代码1
public class Main{
public static void main(String[] args){
char space = ' ', mark = '|';
System.out.println("");
//2
System.out.printf("%c%c%c\n",mark,mark,mark);
System.out.printf("%c%c%c\n",space,space,mark);
System.out.printf("%c%c%c\n",mark,mark,mark);
System.out.printf("%c%c%c\n",mark,space,space);
System.out.printf("%c%c%c\n",mark,mark,mark);
System.out.println("");
//0
System.out.printf("%c%c%c\n",mark,mark,mark);
System.out.printf("%c%c%c\n",mark,space,mark);
System.out.printf("%c%c%c\n",mark,space,mark);
System.out.printf("%c%c%c\n",mark,space,mark);
System.out.printf("%c%c%c\n",mark,mark,mark);
System.out.println("");
//1
for(int j=0;j<5;j++)
System.out.printf("%c%c%c\n",mark,space,space);
System.out.println("");
//9
System.out.printf("%c%c%c\n",mark,mark,mark);
System.out.printf("%c%c%c\n",mark,space,mark);
System.out.printf("%c%c%c\n",mark,mark,mark);
System.out.printf("%c%c%c\n",space,space,mark);
System.out.printf("%c%c%c\n",mark,mark,mark);
System.out.println("");
}
}
程序代码(经过调整,根据代码1改编)
public class Main{
public static void main(String[] args){
char space = ' ', mark = '|';//思路:先画出草图,再根据行列关系分析,并缩减代码行数。
for(int i=1;i<=25;i++)
if(i%6==1)//i对6求余等于1,因为每6行就有1个空行。
System.out.println("");
else if((i<10&&i%2==0)||i==12||(i>=20&&i%2==0))
System.out.printf("%c%c%c\n",mark,mark,mark);
else if(i==3||i==23)//i是3或23
System.out.printf("%c%c%c\n",space,space,mark);
else if(i==5)//i=5
System.out.printf("%c%c%c\n",mark,space,space);
else if(i==14)//i=14
for(int j=0;j<5;j++)
System.out.printf("%c%c%c\n",mark,space,space);
else if(i==9)//i=9
for(int k=0;k<3;k++)
System.out.printf("%c%c%c\n",mark,space,mark);
else if(i==21)//i=21
System.out.printf("%c%c%c\n",mark,space,mark);
}
}