Премини към съдържанието

Препоръчан отговор


Имам задание:
Да се напише програма "Да се състави функция за намиране събиране, изваждане,умножение и деление на две числа представени чрез списъци /може и двусвързани/".

Това което написах е за събиране но нещо не ми тръгва.

#include <iostream>
using namespace std;
struct elem {
    int key;
    elem *next;
}*list1 = NULL, *list2 = NULL, *list3 = NULL;

void add_b(int n, elem *st)
{
    elem *p = st;
    st = new elem;
    st->key = n;
    st->next = p;
}

void list(elem *st)
{
         elem *p = st;
        cout << "The list";
        while (p) {
            cout << p->key << "\t";
            p = p->next;
        }
        cout << endl;
}

void main()
{
    int i, j;
    cout << "\n First Number: ";
    do
    {
        cin >> i;
        if (i > 0 && i < 10)
            add_b(i, list1);

    } while ((i>=0) && (i<10));
    cout << "\n Second Number: ";
    do
    {
        cin >> j;
        if (j > 0 && j < 10)
            add_b(j, list2);

    } while ((j >= 0) && (j<10));
    elem *p = list1, *q = list2;
    int pr = 0; //Пренос
    int c = 0;
    while ((p != NULL) || (q != NULL))
    {
        c = 0;
        if (p != NULL)
        {
            c += p->key;
            p = p->next;
        }
        if (q !=NULL)
        {
            c += q->key;
            q = q->next;
        }
        if (pr > 0)
            c += pr;
        if (c > 9)
        {
            c -= 10;
            pr = 1;
        }
        else
            pr = 0;
        add_b(c, list3);
    }
    if (pr > 0)
        add_b(pr, list3);
    list(list3);


}

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.