Kalkulator operujący na dużych liczbach calkowitych (maksymalnie do 70 cyfr).

0

Witam. Bedzie to moj pierwszy post.

Otoz mam problem ze zrobieniem kalkulatora w C. Ma on umiec podejmowac 4 operacje na 2 liczbach oraz zapamietywac wynik. Zeby liczby moglybyc tak duze potrzebuje "wrzucac" kazda cyfre do jednej komorki tablicy. Robie to tym kodem:

for( i=0;(c=getchar())!='\n';i++)
{
  if(c<'0'||c>'9')
  {
    printf("zla liczba");
    return 1;
  }
  tab_1[i]=c-'0';
  ile_cyfr_1=ile_cyfr_1+1;
}

Tylko ze taki sposob jest malo wydajny i potem jest duzo za duzo zachodu z naprzyklad odejmowaniem takich dwoch"liczb". I teraz moje pytania:

  1. Jak zaznaczac ze ta liczba jest ujemna?
  2. Jak ja potem wyswietlac na ekranie? bo jak wpisze liczbe 56, to wyswietli mi sie w moim kodzie 56 i dalej wiele zer az do konca tablicy ktora ma staly rozmiar.
  3. naperwno jest jakis lepszy sposob na to wszystko.

Zaznaczam ze musi byc zgodnosc z C99.
Prosilbym o jakies pomysly.

0

Musisz to zaimplementować od zera, przy pomocy tablicy, czy Możesz użyć gotowej biblioteki?

0

W tresci jest napisane i tutaj cytuje:

Liczby, na ktorych operuje kalkulator nie moga byc reprezentowane przez zaden z prostych typow danych (konecznosc zastosowania statycznych typow danych takich jak tablice czy struktury).

W programowaniu jestem dosc nowy ale czy istnieje jakas biblioteka do tego w standardzie C99 , ten program ma dzialac na serwerach uczelnianych a tam sie wszystko na Debianach trzyma i z konsoli odpala.

Moze rzeczywiscie powinienem sie dopytac , w srode mam laborki. Niespodziewalem sie ze bede mial z tym problemy. Powiedzial ze da prosty kalkulatorek , inni musza jakies gry w zycie robic, przynajmniej to brzmi ciekawie.

0
dandon223 napisał(a):

W programowaniu jestem dosc nowy ale czy istnieje jakas biblioteka do tego w standardzie C99 , ten program ma dzialac na serwerach uczelnianych a tam sie wszystko na Debianach trzyma i z konsoli odpala.

gmp

0

"Liczby, na ktorych operuje kalkulator nie moga byc reprezentowane przez zaden z prostych typow danych (konecznosc zastosowania statycznych typow danych takich jak tablice czy struktury). "
Czyli wygląda, że nie Możesz [użyć biblioteki]. Tutaj:
https://www.geeksforgeeks.org/sum-two-large-numbers/
I w linkach na dole jest info, jak to zrobić na stringach.

0

W C nie ma stringow, wiec rozumiem ze moj sposob wczytywania i zamieniania charow na inty do tablicy jest jedyny jesli nie moge uzywac bibloiteki.
Tylko nadal nie moge wyobrazic sobie co robic z liczbami ujemnymi.

0
dandon223 napisał(a):
lion137 napisał(a):

"Liczby, na ktorych operuje kalkulator nie moga byc reprezentowane przez zaden z prostych typow danych (konecznosc zastosowania statycznych typow danych takich jak tablice czy struktury). "
Czyli wygląda, że nie Możesz [użyć biblioteki]. Tutaj:
https://www.geeksforgeeks.org/sum-two-large-numbers/
I w linkach na dole jest info, jak to zrobić na stringach.

W C nie ma stringow, wiec rozumiem ze moj sposob wczytywania i zamieniania charow na inty do tablicy jest jedyny jesli nie moge uzywac bibloiteki.
Tylko nadal nie moge wyobrazic sobie co robic z liczbami ujemnymi.

Algorytmy tam są gotowe, Przepisz je na tablice. Co do liczb ujemnych, to, np., Zarezerwuj sobie jedno miejsce w tablicy na znak i w funkcji ewaluującej Wprowadź warunki: jeśli odejmujemy ujemną, to tak naprawdę dodajemy dodatnią, etc...

1 użytkowników online, w tym zalogowanych: 0, gości: 1