该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
{swap(did,done);check=-1;break;}
if (mowei==0)been[j-1]='9';
if(been[j-2]=='0')continue;
else {been[j-2]--;if(been[j-2]=='0')mowei=1;}
}
}
else been[i-1]--;
}
else /*最高位没办法借了*/
{
swap(did,done);/*交换后重新执行循环*/
check=-1;
break;
}
}
if((k==-1)&&(i>=0))
{
for(;i>=0;)
{
total[p++]=been[i--];}
}
if((k>=0)&&(i==-1)){check=-1;swap(did,done);}
if (check==-1)
{ for(p=0;p<100;p++)
{total[p]='\0';
} {
for(mowei=0,p=0,count1=strlen(did),i=count1-1,count2=strlen(done),k=count2-1;i>=0&&k>=0;i--,k--)
{
if (did[i]>=done[k])/*该位被减数大于减数*/
{ total[p++]=(did[i]+0-'0')-(done[k]+0-'0')+'0'-0;}
else if((did[i]
{ total[p++]=(did[i]+0-'0')+10-(done[k]+0-'0')+'0'-0;
if (did[i-1]=='0')
{
for(j=i;did[j-1]=='0';j--)
{
if ((j-1==0)&&(did[j-1]=='0')&&(mowei==0))
{swap(did,done);check=-1;break;}
if (mowei==0)did[j-1]='9';
if(did[j-2]=='0')continue;
else {did[j-2]--;if(did[j-2]=='0')mowei=1;}
}
}
else did[i-1]--;
}/*相当于借了一个以后减一下*/
}
}
if((k==-1)&&(i>=0))
{
for(;i>=0;)
{
total[p++]=did[i--];}
}
}
/*开始打印了*/
p--;/*还原*/
if (check==-1)
{printf("-");for(;p>=0;p--)
{
if ((total[p]=='0')&&(ha==0))
continue;
else {ha=1;printf("%c",total[p]);}
}
}
else{
for(;p>=0;p--)
{
if ((total[p]=='0')&&(ha==0))
continue;
else
{ha=1;
printf("%c",total[p]);
ma=1;}
}
if (ma==0)printf("0"); }
/*******************************************************/
return 0;
}
求各位高手帮我找到一组错误的输入数据 我自己调就可以了 为什么总在前面有0 去不掉啊,我觉得我的代码可以去掉前面的零啊