This funtion adds two long intergers of the same length, this one seems to be fine.

.Code:. void add_integers(INTDEQUE &sum, INTDEQUE X, INTDEQUE Y) { int x,y; int carry =0; int result =0; while (!X.empty() && !Y.empty()) { x = X.back (); y = Y.back (); cout <<"\n " << x << ", " << y; X.pop_back (); Y.pop_back (); result = x+y + carry; { carry = result / 10; result = result % 10; } sum.push_front (result); } }

However I changed the code to this, so that deques of different lenghts can be added. But it doesn't work. Could you please show me where I'm going wrong?

.Code:. void sum_accumulate (INTDEQUE &sum, INTDEQUE X, INTDEQUE Y) { int x,y; int carry = 0; int result = 0; while (!X.empty () && !Y.empty ()) { x = X.back (); y = Y.back (); cout <<"\n " << x << ", " << y; X.pop_back (); Y.pop_back (); result = x + y + carry; carry = result / 10; result = result % 10; sum.push_front (result); sum.insert(sum.end(), '-1'); } INTDEQUE::iterator pdeque; cout << "\nThe sum of the two numbers is :"; for (pdeque = sum.begin(); sum.end != '-1'; pdeque++) cout << *pdeque; cout << '\n'; }

Thanks.