两个大数相减(数字字符串相减),结果输不出

void BigintSub(char a[],char b[],char sub[]) //减法
{
int n,i,j,f,w,k,m,e;
f=0; //sub[]里的序号
w=0; //借位
m=0;
n=0;
i=strlen(a)-1;
j=strlen(b)-1;
if(strcmp(a,b)<0) //比较减数与被减数
{
for(e=0;e<i;e++)
{
m=a[e];
a[e]=b[e];
b[e]=a[e];
}
}
for(i,j;i>=0&&j>=0;i--,j--)
{

  n=(a[i]-'0') - (b[j]-'0') - w; //相同位数相减,(数字)
  if(n<0) //借位
  {
     n+=10;
     w=1;
  }
    sub[f]=n%10+'0';//当前位的(字符)储存到数组sAnd[]中;
    f++;

}
if(i<0&&j<0) //位数相同
{
sub[f]=w+'0';
}

if(j<0) //位数 i>j
{
for(i;i>=0;i--)
{
n=(a[i]-'0') - w;
sub[f]=n%10+'0'; //当前位的(字符)储存到数组sAnd[]中;
f++;
}
}

k=0;
for(i=0;i<f/2;i--)
{
k=sub[i];
sub[i]=sub[f-1-i];
sub[f-1-i]=k;
}

}

  • 先不谈大数相减结果对不对, 下图这里要 i++吧;

img