Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[c]Różnica i suma dużych liczb

12 Gru 2008 11:24 1947 1
  • Poziom 9  
    Witam musze napisac program do szkoly:
    Napisz program, który wyznacza róźnicę oraz sumę podanych liczb naturalnych.
    Wejście

    Na wejście programu podana zostanie pewna ilość zestawów danych (co najwyżej 1000). Każdy zestaw będzie się składać z dwóch liczb naturalnych rozdzielonych spacją. Poszczególne zestawy zostaną rozdzielone znakiem nowej linii. Przyjmujemy, że żadna z liczb nie ma więcej niż 1000 cyfr.
    Wyjście

    Dla każdego z wczytanych z wejścia zestawów należy wyznaczyć różnicę oraz sumę liczb, które w skład tego zestawu wchodzą. Poszczególne wyniki należy rozdzielić znakiem nowej linii.
    Przykład

    Wejście:

    100 200
    6001 10
    700 100

    Wyjście:

    -100
    300
    5991
    6011
    600
    800

    napisalem cos takiego:
    Code:
    #include<stdio.h>
    
    long long a,b;

    int main()
    {
        while(scanf("%lld %lld", &a, &b)==2)
        {
          printf("%lld %lld\n",a-b,a+b);               
        }
    return 0;
    }

    jednak nie dziala poprawnie,zle liczy sume

    wydaje mi sie ze trzeba uzyc tablic wiec napisalem costakiego:
    Code:
    #include<stdio.h>
    
    #include<string.h>
    char a[1001],b[1001];

    int main()
    {
        while(scanf("%s %s", &a, &b)==2)
        {
          printf("%s\n %s\n",a-b,a+b);               
        }
    return 0;
    }

    jednak program sie nie kompiluje
    prosze o pomoc
    pozdro
  • Poziom 20  
    Nie kompiluje się bo a i b to wskazniki do tablic. Można je odejmować (choć wynik to nie zmienna tylko adres - w tym przypadku nie wiadomo czego) ale nie można ich dodawać. Przy 1000 cyfrach musisz napisać obsługę własnego typu przechowującego duże liczby albo inaczej podejść do problemu.
    Np przy zapisie do tablic jak u ciebie można zaimplementować dodawanie i odejmowanie, którego zasady pewnie znasz - tzw. pisemne:
    Code:

     99+
     42
    -------
     11 +
    130
    ------
    141