Здравейте, имам ето това задание:


Големи числа се наричат цели положителни числа с К цифри. Големите цели числа могат да се представят с помощта на линеен едносвързан списък, всеки елемент на който съдържа точно една цифра от числото. Дадени са две големи цели числа N1 и N2 (до 100 цифри). Да се напишат програмни фрагменти за :

a. Представяне на числата чрез списъци;

b. Сумиране на две големи цели числа.



Бях го направил с две функции create1 и create2 и две променливи N1 и N2, но професорката иска да е само един и колкото числа искам да въведа толкова пъти да извикам един и същ create. Опитах по този начин но при започване на въвеждането на второто число програмата блокира. Бих бил благодарен ако някой помогне.



Ето и до къде съм стигнал.



#include <iostream>
using namespace std;

struct chislo{
int N;
chislo* next;
};
typedef chislo* Point;
Point Head;

void Create(Point &Head) {
Point Last, P; Last=NULL;
int brc=0;
int br=0;
cout<<"Колко цифри ще е числото?: ";
cin>>br;
while (brc != br) {
P = new chislo;
brc++;
cout << brc <<" цифра на числото: ";
cin >> P->N;
P->next=NULL;
if (Head == NULL) Head = P;
else Last->next = P;
Last = P;
}
}

void Traverse(Point P){
cout<<"Числото е:";
while (P !=NULL) {
cout<<P->N;
P = P->next;
}
cout<<endl;
}

int main() {
system("chcp 1251");
Point Head = NULL;
Create(Head);
Create(Head);
Traverse(Head);
Traverse(Head);
}