acm1146Z我自己运行结果正确,为什么提交不成功

buptwaitme2002 2004-05-05 11:24:12
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char ch[30][20];
typedef struct display
{int s;
int d;
int data[10];
struct display *next;
}display;
display *read()
{int s,k,i;
display *f,*r,*head;
long int n,j;
r=NULL;
head=r;
k=0;
scanf("%d%ld",&s,&n);
while(!(s==0&&n==0)&&s>=1&&s<=10&&n>=0&&n<=99999999)
{r=(display*)malloc(sizeof(display));
if(k==0)
{head=r;
f=r;
}
else
{f->next=r;
f=r;
}
r->s=s;
r->d=0;
j=n;
while(j!=0)
{r->d++;
j=j/10;
}
for(i=r->d-1;i>=0;i--)
{r->data[i]=n%10;
n=n/10;
}
k++;
scanf("%d%ld",&s,&n);
}
r->next=NULL;
return head;
}
void dispose(int s,int c)
{int row,col;
for(row=0;row<2*s+3;row++)
for(col=0;col<s+2;col++)
ch[row][col]=' ';
switch(c)
{case 0:
for(col=1;col<s+1;col++)
{ch[0][col]='-';
ch[2*s+2][col]='-';
}
for(row=1;row<s+1;row++)
{ch[row][0]='|';
ch[row][s+1]='|';
}
for(row=s+2;row<2*s+2;row++)
{ch[row][0]='|';
ch[row][s+1]='|';
}
break;
case 1:
for(row=1;row<s+1;row++)
ch[row][s+1]='|';

for(row=s+2;row<2*s+2;row++)
ch[row][s+1]='|';
break;
case 2:
for(col=1;col<s+1;col++)
{ch[0][col]='-';
ch[s+1][col]='-';
ch[2*s+2][col]='-';
}
for(row=1;row<s+1;row++)
ch[row][s+1]='|';
for(row=s+2;row<2*s+2;row++)
ch[row][0]='|';
break;
case 3:
for(col=1;col<s+1;col++)
{ch[0][col]='-';
ch[s+1][col]='-';
ch[2*s+2][col]='-';
}
for(row=1;row<s+1;row++)
ch[row][s+1]='|';
for(row=s+2;row<2*s+2;row++)
ch[row][s+1]='|';
break;
case 4:
for(col=1;col<s+1;col++)
ch[s+1][col]='-';
for(row=1;row<s+1;row++)
{ch[row][s+1]='|';
ch[row][0]='|';
}
for(row=s+2;row<2*s+2;row++)
ch[row][s+1]='|';
break;
case 5:
for(col=1;col<s+1;col++)
{ch[0][col]='-';
ch[s+1][col]='-';
ch[2*s+2][col]='-';
}
for(row=1;row<s+1;row++)
ch[row][0]='|';
for(row=s+2;row<2*s+2;row++)
ch[row][s+1]='|';
break;
case 6:
for(col=1;col<s+1;col++)
{ch[0][col]='-';
ch[s+1][col]='-';
ch[2*s+2][col]='-';
}
for(row=1;row<s+1;row++)
ch[row][0]='|';
for(row=s+2;row<2*s+2;row++)
{ch[row][s+1]='|';
ch[row][0]='|';
}
break;
case 7:
for(row=1;row<s+1;row++)
ch[row][s+1]='|';
for(col=1;col<s+1;col++)
ch[0][col]='-';
for(row=s+2;row<2*s+2;row++)
ch[row][s+1]='|';
break;
case 8:
for(col=1;col<s+1;col++)
{ch[0][col]='-';
ch[s+1][col]='-';
ch[2*s+2][col]='-';
}
for(row=1;row<s+1;row++)
{ch[row][0]='|';
ch[row][s+1]='|';
}
for(row=s+2;row<2*s+2;row++)
{ch[row][0]='|';
ch[row][s+1]='|';
}
break;
case 9:
for(col=1;col<s+1;col++)
{ch[0][col]='-';
ch[s+1][col]='-';
ch[2*s+2][col]='-';
}
for(row=1;row<s+1;row++)
{ch[row][0]='|';
ch[row][s+1]='|';
}
for(row=s+2;row<2*s+2;row++)
ch[row][s+1]='|';
break;
default:break;
}
}
int main()
{display *head,*p;
int k,i,row,col;
head=read();
p=head;
while(p!=NULL)
{k=p->d;
for(row=0;row<2*(p->s)+3;row++)
{for(i=0;i<k;i++)
{ dispose(p->s,p->data[i]);
for(col=0;col<(p->s)+2;col++)
printf("%c",ch[row][col]);
printf(" ");
}
printf("\n");
}
printf("\n\n");
p=p->next;
}
return 0;
}
...全文
37 回复 点赞 打赏 收藏 举报
写回复
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
相关推荐
发帖
C语言
加入

6.5w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-05-05 11:24
社区公告
暂无公告