#include #include #include char tmp1[100], tmp2[100], tmpans[200]; char op1[100], op2[100], ans[200]; int len1, len2, len3, sign1, sign2, sign3; void removeblank(char*); void reverse(char x[]); void printans(), add(), sub(), mul(), div(); int main(){ printf("First #:"); gets(tmp1); printf("Second#:"); gets(tmp2); removeblank(tmp1); removeblank(tmp2); strcpy(op1, tmp1); strcpy(op2, tmp2); len1=strlen(op1); len2=strlen(op2); reverse(op1); reverse(op2); //printf("op1=%s\n", op1); //printf("op2=%s\n", op2); add(); cout <<"sum===="; printans(); sub(); cout <<"diff==="; printans(); mul(); cout <<"mul="; printans(); div(); cout <<"div="; printans(); } void removeblank(char x[1]) { } void copy100(char t[1], char s[1]) { int i=0; for(; i< 100; i++) t[i] = s[i]; } void reverse(char x[1]) { char tmp[100], i, k=0; for(i=strlen(x)-1; i>=0; i--){ if(x[i] != '.') tmp[k++] = x[i] - '0'; } tmp[k]=0; copy100(x, tmp); } void printans() { int i; if(sign3)cout<<"-"; for(i=len3-1; i>0; i--) if(ans[i]!=0) break; while(i) cout << (int)ans[i--]; cout << (int)ans[0] << endl; } void add() { int cy, i, tmp, n=len1; if(n< len2) n=len2; len3 = n+1; cy=0; for(i=0; i<=n; i++){ tmp = op1[i]+op2[i]+cy; if(tmp>10) { cy=1; ans[i] = (tmp % 10); }else ans[i] = tmp; } } void sub() { int cy, i, tmp, n=len1; if(n< len2) n=len2; len3 = n; cy=0; for(i=0; i