Считая что в двух строках находятся очень длинные целые числа, сформировать третью строку - сумму этих чисел

Anna____

Вообщем, задание вот такое: Даны две символьные строки, состоящие только из цифр (длина каждой более 10 символов). Считая, что в этих строках находятся очень длинные целые числа, сформировать третью строку – сумму этих чисел. Я сделала, но часть программы работает неверно,
#include <conio.h> 
#include <iostream>
#include <cstdio>  
using namespace std;
int main() {
      char a[100];
      int mp, n_a,n_b,n_c, maxx, min, i, S;
      char n;
      char c[100];
      cout<<"Stroka 1: "<<endl;
      scanf("%s", a);
      char b[100];
          cout<<"Stroka 2: "<<endl;
      scanf("%s", b);
      n_a=strlen(a);
      n_b=strlen(b);
          printf("Dlina 1 stroki: %d", n_a);
      printf("Dlina 2 stroki: %d", n_b);
      if (n_a>n_b) {
        maxx=n_a; 
        min=n_b; 
        n_c=n_a;
        n='a';
      }
      else {maxx=n_b; min=n_a; n_c=n_b; n='b'; }
      n_c=maxx+1;
      mp=0;
      for (i=1; i<min+1; i++)
      {
        S=mp+(a[n_a-i]-48)+(b[n_b-i]-48);
        mp=S/10;
            c[maxx-i]=S%10+48;
      }
 
иииии  дальше... [B]вот эта часть уже как то не так работает[/B]
      if(n=='a')
        for (i=maxx - min; i>=0; i--)
        {
            c[maxx-i-1-min]=(mp+a[n_b-i]-48)%10;
            mp=(c[n_c-i]-48)/10+48;
        
        }
      else
        for (i=min; i<maxx-min; i++)
        {
                c[maxx-i-1-min]=(mp+b[n_b-i]-48)%10;
                mp=(c[n_c-i]-48)/10+48;
            
        }
        c[0]=mp+48;
    cout<<"Summa 1 i 2 stroki ravna : "<<c<<endl;
    _getch();
    return 0;
}
Могу объяснить алгоритм, блин ну никак исправить не могу((((
1 ответ

Anna____

cout << "\n\nSumma 1 i 2 stroki ravna : " ;
if ( n_b < n_a)
for (int p = 0; p < n_a;p++)
cout <<  c [p]<<endl;
else
for (int d = 0; d < n_b; d++)
cout <<  c[d] << endl;