High precision (accuracy) method, accuracy
First pass subtraction!
# Include <stdio. h> # include <string. h> int main () {int a [1000] = {0}, B [1000] = {0}, c [1000] = {0}; char * s1; int l1 = 0, l2 = 0, l, I, x; scanf ("% s", s1); l1 = strlen (s1); for (I = 0; I <= l1-1; I ++) a [l1-1-i] = s1 [I]-'0'; scanf ("% s", s1); l2 = strlen (s1 ); for (I = 0; I <= l2-1; I ++) {B [l2-1-i] = s1 [I]-'0';} if (l1> l2) l = l1; else l = l2; for (I = 0; I <L-1; I ++) {if (a [I] <B [I]) {c [I] = a [I] + 10-b [I]; c [I + 1] = a [I + 1]-1 ;} else c [I] = a [I]-B [I];} for (I = 0; I <L-1; I ++) {if (a [I] <B [I]) {x = 1 ;}} if (l1 <l2 | x = 1) {printf ("-"); for (I = 0; I <= L-1; I ++) {if (B [I] <a [I]) {c [I] = B [I] + 10-a [I]; c [I + 1] = B [I + 1]-1 ;} else c [I] = B [I]-a [I] ;}} for (I = L-1; I> = 0; I --) for (I = L-1; i> = 0; I --) printf ("% d", c [I]); return 0 ;}
The following is the ++ method!
#include<stdio.h>#include<string.h>int main(){char s[1000],a[1000]={0},b[1000]={0}; int i,l1,l2,l; scanf("%s",s); l1=strlen(s); for(i=0;i<=l1-1;i++) { a[l1-1-i]=s[i]-'0'; } scanf("%s",s); l2=strlen(s); for(i=0;i<=l2-1;i++) { b[l2-1-i]=s[i]-'0'; }if(l1>l2){l=l1;}else{ l=l2;}for(i=0;i<=l-1;i++){a[i]=a[i]+b[i];if(a[i]>=10){a[i+1]=a[i+1]+1;a[i]=a[i]-10;}}if(a[l]!=0)l++;for(i=l;i>=0;i--){printf("%d",a[i]);}return 0;}