Duże tablice znaków

Dodawanie dużych liczb

Zad 1


Każdy typ danych ma ograniczony zakres wielkości liczb na których można wykonywać działania arytmetyczne. Aby wyonywać działania na dużych liczbach należy samemu opracować reprezentację liczby za pomocą tablicy oraz zaimplementować algorytm dodawania z przeniesieniem znany ze szkoły.
W tym zadaniu cel jest prostszy. Należy wczytać dużą liczbę a następnie dodać do niej dowolną cyfrę z klawiatury. W wyniku mamy otrzymać liczbę powiększoną o tę cyfrę. Pamiętajmy o przeniesieniu, które może wędrować aż do końca, a nawet poza długość liczby. (program ma działać na liczbach o 30 cyfrach, ale możesz testować go na mniejszych długościach aby czas wpisywania liczby nie był zbyt długi).
Poniżej podaję jak wczytać liczbę i zapisać ilość cyfr. Wkorzystujemy w tym celu fakt, że funkcja scanf zwraca ilość dobrze wczytanych argumentów. Zatem jeśli podamy cyfrę, zwrócić powinna 1. Jeśli podamy literę, lub liczbę ujemną, scanf zwróci 0, co zgodnie z poniższą konstrukcją zakończy pętlę while.
Zwróć uwagę, że po wykonaniu tej pętli liczba i jest o 1 większa od liczby wczytanych poprawnie cyfr.

while ((scanf("%i1",&cyfra))==1){
   tab[i]=cyfra; 
   i=i+1;
}


Zad 2


Napisz program który wczytuje 2 duże liczby *tej samem długości* i zwraca wynik ich dodawania. Pamiętaj o tym że wynik może mieć więcej cyfr niż każda ze wczytanych liczb. Oto przykład dodawania:

123456789 + 987654321 = 1111111110

Zad 3


Na podstawie kodu rozwiązania poprzedniego zadania, napisz program który dodaje 2 liczby o różnych długościach.