高精度运算(更新)(整数减法)(指针)
#include <stdio.h>#include <stdlib.h>
#include <string.h>
main()
{
int borrow,a[100]={0},b[100]={0},c[100],i,len,len1,len2,flag;
char s1[100],s2[100],*pmax,*pmin;
scanf("%s %s",s1,s2);
len1=strlen(s1);
len2=strlen(s2);
if(len1<len2)
flag=1;
else if(len1==len2&&strcmp(s1,s2)<0)
flag=-1;
if(flag>0)
{
pmax=s1;
pmin=s2;
}
else
{
pmax=s2;
pmin=s1;
}
for(i=0;i<strlen(pmax);i++)
a[i]=pmax[strlen(pmax)-1-i]-'0';
for(i=0;i<strlen(pmin);i++)
b[i]=pmin[strlen(pmin)-1-i]-'0';
len=len1>len2?len1:len2;
borrow=0;
for(i=0;i<len;i++)
{
c[i]=a[i]-b[i]-borrow;
borrow=c[i]<0;
if(borrow>0)
c[i]+=10;
}
while(c[len-1]==0&&len>1)
len--;
if(flag<0)
putchar('-');
for(i=len-1;i>=0;i--)
printf("%d",c[i]);
getch();
}