Status: WA
#include<stdio.h>
#include<string.h>
#define N 20
#define M 12
int main()
{
char num[N];//显示数字
int s;//占位数
int l;//Num长度
int x[N];//num转为Int型
int i,j,k;
char n_1[M]={'-', ' ', '-','-', ' ',
'-', '-', '-', '-', '-'};//10个数字相应行数的笔画
char n_3[M]={' ', ' ', '-','-', '-',
'-', '-', ' ', '-', '-'};
char n_5[M]={'-', ' ', '-','-', ' ',
'-', '-', ' ', '-', '-'};
scanf("%d ",&s);
gets(num);
while(s && strcmp(num,"0")!=0 )
{
l = strlen(num);//数据个数
// printf("l is : %d\n",l);
for(i=0; i<l; i++)
{
x[i] = num[i] - '0';
// printf("x[%d]: %d\n",i,x[i]);//test
}
//对多字同行
//n_1行处理的群· ·
for(i=0; i<l; i++)
{
printf(" ");//为竖行留空间
for(j=0; j<s; j++)
{
printf("%c",n_1[x[i]]);
}
if(i<l-1)
printf(" ");//空列--changge
else
printf(" ");
}
printf("\n");//进入下一行处理
//n_2竖列进行处理
for(i=0; i<s; i++)
{
for(j=0; j<l; j++)//------------------------------
{
//当前处理数字x[i]为1237
if(x[j]==1 || x[j]==2 || x[j]==3 || x[j]==7 )
{
for(k=0; k<s+1; k++)//共s+2列,要空出1+s列
printf(" ");//s+1个空格
printf("|");//输出笔画
}else if(x[j]==5 || x[j]==6)
{
printf("|");//输出笔画
for(k=0; k<s+1; k++)
printf(" ");//s-1个空格
}else if(x[j]==0 || x[j]==4 || x[j]==8 || x[j]==9 ){
printf("|");
for(k=0; k<s; k++)
printf(" ");//s个空格
printf("|");
}//if
if(j<l-1)
{
printf(" ");//空列
}
}//for j
printf("\n");//该n_2中的下一行处理//并且无需之后再回车
}//for i
//对第n_3行
//上式中已显示回车
for(i=0; i<l; i++)
{
printf(" ");//空列
for(j=0; j<s; j++)
{
printf("%c",n_3[x[i]]);
}
if(i<l-1)
printf(" ");//空列--changge
else
printf(" ");
}
printf("\n");//进入下一行处理
//处理n_4竖行
for(i=0; i<s; i++)
{
for(j=0; j<l; j++)//------------------------------
{
//当前处理数字x[i]为1237
if(x[j]==1 || x[j]==3 ||x[j]==4 || x[j]==5 || x[j]==7 || x[j]==9)
{
for(k=0; k<s+1; k++)
printf(" ");//s-1个空格
printf("|");//输出笔画
}else if(x[j]==2)
{
printf("|");//输出笔画
for(k=0; k<s+1; k++)
printf(" ");//s-1个空格
}else if(x[j]==0 || x[j]==8 || x[j]==6)
{
printf("|");
for(k=0; k<s; k++)
printf(" ");//s-1个空格
printf("|");
}//if
if(j<l-1)
{
printf(" ");//空列
}
}//for j
printf("\n");//该n_2中的下一行处理//并且无需之后再回车
}//for i
//n_5行处理的群· ·
for(i=0; i<l; i++)
{
printf(" ");//为竖行留空间
for(j=0; j<s; j++)
{
printf("%c",n_5[x[i]]);
}
if(i<l-1)
printf(" ");//空列--changge
else
printf(" ");
}
printf("\n\n");//进入下一行处理--change
memset(num, '\0', N);//接受下一组数据
memset(x, '\0', N);
scanf("%d ",&s);
gets(num);
// if(s && strcmp(num,"0")!=0)
// printf("\n\n");//进入下一行处理--change
}//while
return 0;
}