grids 2745 显示器
程序员文章站
2022-05-31 12:26:23
...
中文不解释
是一道模拟题
可以使用七段数码管的原理,将每个数字在每一段是否要显示标识出来,形成一个10×7的数组。
题目较简单,就是有很多小细节
(1)输出的数字没有说不能以零开头
(2)输出的数字可以是0
(3)是数字与数字间才用空类隔开,也就是说最后一个数字后面不能有空列
(3)是每个数后面有一个空行,因此最后一个数有空行
(4)注意数字的表示,如‘9’最下面还有一横的要注意。数字表示如下:
- - - - - - - -
| | | | | | | | | | | | | |
- - - - - - -
| | | | | | | | | | | | |
- - - - - - -
无
I 使用int数组
(1)C
#include "stdio.h" //#include "stdlib.h" #include "string.h" char a[10][7] = { '-','|','|',' ','|','|','-',//0 ' ',' ','|',' ',' ','|',' ',//1 '-',' ','|','-','|',' ','-',//2 '-',' ','|','-',' ','|','-',//3 ' ','|','|','-',' ','|',' ',//4 '-','|',' ','-',' ','|','-',//5 '-','|',' ','-','|','|','-',//6 '-',' ','|',' ',' ','|',' ',//7 '-','|','|','-','|','|','-',//8 '-','|','|','-',' ','|','-' //9 }; int main() { char n[9]; int i,j,k,s,len; //int flag = 0; scanf("%d %s",&s,n); while(!(s==0 && strlen(n)==1 && n[0]=='0') ) { //if(flag==1){putchar('\n');}//空白行 len = strlen(n); //printf("len=%d\n",len); for(i=0;i<len;i++) { putchar(' '); for(j=0;j<s;j++) putchar(a[n[i]-'0'][0]); putchar(' '); if(i<len-1){putchar(' ');}//空白列 } putchar('\n'); for(j=0;j<s;j++) { for(i=0;i<len;i++) { putchar(a[n[i]-'0'][1]); for(k=0;k<s;k++) putchar(' '); putchar(a[n[i]-'0'][2]); if(i<len-1){putchar(' ');}//空白列 } putchar('\n'); } for(i=0;i<len;i++) { putchar(' '); for(j=0;j<s;j++) putchar(a[n[i]-'0'][3]); putchar(' '); if(i<len-1){putchar(' ');}//空白列 } putchar('\n'); for(j=0;j<s;j++) { for(i=0;i<len;i++) { putchar(a[n[i]-'0'][4]); for(k=0;k<s;k++) putchar(' '); putchar(a[n[i]-'0'][5]); if(i<len-1){putchar(' ');}//空白列 } putchar('\n'); } for(i=0;i<len;i++) { putchar(' '); for(j=0;j<s;j++) putchar(a[n[i]-'0'][6]); putchar(' '); if(i<len-1){putchar(' ');}//空白列 } putchar('\n'); putchar('\n');//空白行 scanf("%d %s",&s,n); //flag = 1; } //system("pause"); return 0; }