[求助]ACM斑竹帮助下
http://acm.zju.edu.cn/show_problem.php?pid=2514#include<stdio.h>
#include<string.h>
main()
{
int a,b=0,c[10000],d,i,j,n=0,l=0,e,w,m;
char yonghu[20],mima[20],p[10000][21],q[10000][21];
while(scanf("%d",&a)!=EOF)
{
if(a==0)break;
c[n]=0;
while(a)
{
a--;
c[n]=0;
scanf("%s%s",yonghu,mima);
w=strlen(yonghu);
m=strlen(mima);
if(m>10||w>10){a=a+1;continue;}
printf("aaa %d %d %d\n",a,w,m);
for(i=0;i<w;i++) q[n][i]=yonghu[i];
q[n][i]='\0';
for(i=0;i<m;i++)
{ p[n][i]=mima[i];
if(mima[i]=='0'){p[n][i]='%';c[n]=1;}
if(mima[i]=='l'){p[n][i]='L';c[n]=1;}
if(mima[i]=='O'){p[n][i]='o';c[n]=1;}
if(mima[i]=='1'){p[n][i]='@';c[n]=1;}
}
p[n][i]='\0';
if(c[n]==1)l=l+1;
n++;
}
}
printf("%d\n",l);
for(e=0;e<n;e++)
{
if(c[e]==0)printf("No account is modified\n");
else
{
for(j=0;q[e][j]!='\0';j++)printf("%c",q[e][j]);
printf(" ");
for(d=0;p[e][d]!='\0';d++) printf("%c",p[e][d]);
printf("\n");
}
}
}
这是我写的,提交但是是错的。
帮我看下我那里出错了?????
----------------解决方案--------------------------------------------------------
帮别人DEBUG是一件很麻烦的事,特别是没有注释,命名不规范,一堆代码都堆在main函数里的程序,先要读懂你程序的意思,看出每个变量的作用,然后在分析你的错误在哪,之后回复你的人得到了一点点长进(甚至得不到),而你失去了一次自己DEBUG的机会,自己DEBUG吧,那将使你成长。如果实在找不到错误,那么请加上一些注释,至少的变量的作用要写出来,a,b,c,d,e,i,j,w,m,n除了你自己没人知道是干嘛用的
----------------解决方案--------------------------------------------------------
LS说的很对.自己写的东西应该自己去检查.特别是做ACM.自己检查出来的就多一份自豪感.
还有要别人看你的程序,你应该要让别人你的程序做什么.题目的意思是什么.还有你的思路是什么?
这些你似乎都没有做到.别人就这样看很吃力的.
估计没有人会有这么的时间看,最多你说题目意思,别人讲思路.
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
已经找出错误,其实是题目看错了。输出格式搞错了。程序是没错的。
#include<stdio.h>
#include<string.h>
main()
{
int a,b=0,c[1000],d,i,j,n=0,l=0,e,w,m;
char yonghu[11],mima[11],p[1000][12],q[1000][12];
while(scanf("%d",&a)!=EOF)
{
if(a==0)break;
c[n]=0;
while(a)
{
a--;
c[n]=0;
scanf("%s%s",yonghu,mima);
w=strlen(yonghu);
m=strlen(mima);
if(m>10||w>10){a=a+1;continue;}
for(i=0;i<w;i++) q[n][i]=yonghu[i];
q[n][i]='\0';
for(i=0;i<m;i++)
{
if(mima[i]=='0'){mima[i]='%';c[n]=1;}
if(mima[i]=='l'){mima[i]='L';c[n]=1;}
if(mima[i]=='O'){mima[i]='o';c[n]=1;}
if(mima[i]=='1'){mima[i]='@';c[n]=1;}
p[n][i]=mima[i];
}
p[n][i]='\0';
if(c[n]==1)l=l+1;
n++;
}
if(l>0)printf("%d\n",l);
for(e=0;e<n;e++)
{
if(c[e]==0&&l==0){ printf("No account is modified.\n");break;}
if(c[e]==1)
{
for(j=0;q[e][j]!='\0';j++)printf("%c",q[e][j]);
printf(" ");
for(d=0;p[e][d]!='\0';d++) printf("%c",p[e][d]);
printf("\n");
}
}
n=0;l=0;
}
}
----------------解决方案--------------------------------------------------------