大数的减法,同样的需要用数组保留输入的两个大数,然后将其转换成为整型数进行运算。代码如下
#include<stdio.h> //此代码要求a-b,其中a大于b #include<string.h> int main(void) { char s1[505],s2[505]; while(scanf("%s%s",s1,s2)==2) { int i,j,len1,len2; int a[105]={0},b[105]={0}; len1=strlen(s1); len2=strlen(s2); for(i=len1-1,j=0;i>=0;i--,j++) //将字符转换成为整型数 { a[j]=s1[i]-48; } for(i=len2-1,j=0;i>=0;i--,j++) { b[j]=s2[i]-48; } for(i=0;i<len1;i++) { a[i]=a[i]-b[i]; if(a[i]<0) { a[i]+=10; //算法关键 a[i+1]--; } } i=len1-1; while(a[i]==0) { i--; } for(;i>=0;i--) { printf("%d",a[i]); } printf(" "); } return 0; }