Премини към съдържанието
  • Добре дошли!

    Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

    Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

     

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

Здравейте, имам задача от списъци в C++ със следното условие: Да се състави функция за изваждане на две числа, представени чрез списъци (може и двусвързани). До момента съм написала следния код, но списъците не се извеждат на екран и не се извършва изваждането. Бихте ли ми казали къде греша, тъй като в момента го изучавам и се затруднявам. Ще ви бъда много благодарна, ако ми помогнете. 😊

#include <iostream>

using namespace std;

struct elem {

    int key;

    elem *next;

}

*list1 = NULL, *list2 = NULL, *list3 = NULL;

void add1(int n, elem *start)

{

    elem *p = start;

    start = new elem;

    start ->key = n;

    start ->next = p;

}

void list(elem *start)

{

         elem *p = start;

        cout << "Spisyk:";

        while (p) {

            cout << p->key << "\t";

            p = p->next;

        }

        cout << endl;

}

int main()

{

    int i, j;

    cout << "\n Vyvedete pyrvoto chislo: ";

    do

    {

        cin >> i;

        if (i > 0 && i < 10)

            add1(i, list1);

    } while ((i>=0) && (i<10));

    cout << "\n Vyvedete vtoroto chislo: ";

    do

    {

        cin >> j;

        if (j > 0 && j < 10)

            add1(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;

        add1(c, list3);

    }

    if (pr > 0)

        add1(pr, list3);

    list(list3);

}

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

Добавете отговор

Можете да публикувате отговор сега и да се регистрирате по-късно. Ако имате регистрация, влезте в профила си за да публикувате от него.

Гост
Напишете отговор в тази тема...

×   Вмъкнахте текст, който съдържа форматиране.   Премахни форматирането на текста

  Разрешени са само 75 емотикони.

×   Съдържанието от линка беше вградено автоматично.   Премахни съдържанието и покажи само линк

×   Съдържанието, което сте написали преди беше възстановено..   Изтрий всичко

×   You cannot paste images directly. Upload or insert images from URL.

  • Разглеждащи това в момента   0 потребители

    Няма регистрирани потребители разглеждащи тази страница.

  • Подобни теми

    • от georgi999
      Привет .  Имам един проект който трябва да направа , Бих искал ако може да ми дадете напътствия малко на по прост език понеже съм объркан от заданието на проекта, Ако можете да ми кажете как да започна . Нямам дисциплина на работа и се обърквам. Това е изпит по Методи на транслация. Единствено мога да работя на Visual Studio. Подходящо ли е на него да се прави такъв компилатор . Обеснете ми подробно как да започна . БИХ БИЛ МНОГО БЛАГОДАРЕН АКО МИ НАМЕРИТЕ КЛИПЧЕ ЗА ТОЗИ ПРОЕКТ И ДА ГЛЕДАМ ПО НЕГО . А това е заданието ''
      Всеки студент трябва да разработи проект по Методи на транслация. Проекта трябва да представлява транслатор (компилатор) преобразуващ програми на език от високо ниво (SimpleC или SimpleP) до език от ниско ниво (машинен език или асемблер за платформите базирани на x86, .Net IL или Java ByteCode). '' 
    • от силвия димитрова стефанова
      Здравейте! Може ли да ми помогнете с курсовата ми работа.  Това е условието. Не мога да направя точка 11‐III. Може ли да ми помогнете
      11‐I.Да се състави абстрактен клас Редактор на книга BookEditor Чисто виртуални функции:
      I.1.LIST<BOOKPAGE> GENERATEBOOK(STRING TITLE, INT NUMBERPAGES )‐ СЪЗДАВА СТРАНИЦИ ОТ КНИГА СЪС ЗАГЛАВИЕ TITLE И ПРАЗНИ СТРАНИЦИБРОЙ NUMBERPAGES И ГИ ДОБАВЯI.2.VOID SWAPPAGES(INT FIRSTPN, INT SECONDPN)‐ РАЗМЕНЯ СТРАНИЦИТЕ С НОМЕРА – ПАРАМЕТРИ FIRSTPN, SECONDPN.ПРОДУЦИРА ИЗКЛЮЧЕНИЕ, АКО НЕ МОЖЕ ДА СЕ ИЗПЪЛНИ
      11‐II.Да се състави клас Страница BookPage Скрити член променливи:
      Номер на страница‐ число int; Съдържание – низ string; Публични функции:
      II.1.КОНСТРУКТОРИ – ЕКСПЛИЦИТЕН, ПОДРАЗБИРАЩ СЕ;
      II.2.ЧЕТЕНЕ/ЗАПИС
      II.3.ЗА РАЗМЯНА НА СЪДЪРЖАНИЕ НА СТРАНИЦА С ПОДАДЕНАТА КАТО ПАРАМЕТЪР РЕФЕРЕНЦИЯ КЪМ СТРАНИЦА;
      II.4.OPERATOR == СРАВНЯВА ПО ВСИЧКИ ДАННИ
      II.5.OPERATOR< ЗА СРАВНЕНИЕ ЗА ПО‐МАЛКО НА ПОДАДЕНИЯ ПАРАМЕТЪР ОБЕКТ С ТЕКУЩИЯ ПО НОМЕР НА СТРАНИЦА
      II.6.ПРЕОБРАЗУВА / ВРЪЩА НИЗ ОТ ЧЛЕНОВЕТЕ НА КЛАСА
      II.7.OPERATOR<<(ИЗВЕЖДА В УКАЗАН ИЗХОДЕН ПОТОК)
      II.8.OPERATOR>>(ЧЕТЕ ОТ УКАЗАН ВХОДЕН ПОТОК)
      11‐III.Да се състави клас Книга Book за съхраняване на страници (подредени по номер на страница), наследник на BookEditor – клас I11‐I Скрити член променливи: Списък от страници – съдържа обекти от клас II, m_listPagesПублични функции: III.1.КОНСТРУКТОРИ – ЕКСПЛИЦИТЕН ПО БРОЙ СТРАНИЦИ И ЗАГЛАВНА СТРАНИЦА, СЪЗДАВА КНИГА СЪС ЗАГЛАВИЕ И ПРАЗНИ СТРАНИЦИ –УКАЗАНИЯ БРОЙ; ПОДРАЗБИРАЩ СЕ – СЪЗДАВА КНИГА САМО СЪС ЗАГЛАВИЕ
      III.2.ДОБАВЯНЕ НА СТРАНИЦА – ПАРАМЕТЪР СТРАНИЦА
      III.3.ПРОМЕНЯНЕ НА СТРАНИЦА – ПАРАМЕТЪР СТРАНИЦА
      III.4.ПРЕМАХВАНЕ НА СТРАНИЦА С ПОДАДЕН ПАРАМЕТЪР НОМЕР НА СТРАНИЦА
      III.5.РАЗМЕНЯНЕ НА СЪДЪРЖАНИЕ НА ПОДАДЕНИ ДВЕ РЕФЕРЕНЦИИ КЪМ СТРАНИЦИ.ПРОДУЦИРА ИЗКЛЮЧЕНИЕ, АКО НЕ МОЖЕ ДА СЕ ИЗПЪЛНИ
      III.6.ПРЕОБРАЗУВА / ВРЪЩА НИЗ ОТ ЧЛЕНОВЕТЕ НА КЛАСА
      III.7.ИМПЛЕМЕНТИРАНЕ НА ВИРТУАЛНИТЕ ФУНКЦИИ
      11‐IV.Главна функция (main) IV.1.СЪЗДАВА ОБЕКТ BOOK ОТ
      IIIIV.2.ИЗВЕЖДАНЕ НА КНИГАТА НА КОНЗОЛЕН ИЗХОД
      IV.3.ДОБАВЯНЕ НА СТРАНИЦА КЪМ
      IV.1, ИЗВЕЖДАНЕ НА РЕЗУЛТАТА НА КОНЗОЛЕН ИЗХОД
      IV.4.ПРЕМАХВАНЕ НА СТРАНИЦА ОТ
      IV.1, ИЗВЕЖДАНЕ НА РЕЗУЛТАТА НА КОНЗОЛЕН ИЗХОД
      IV.5.РАЗМЕНЯНЕ НА ДВЕ ОТ СТРАНИЦИТЕ ОТ
      IV.1, ИЗВЕЖДАНЕ НА РЕЗУЛТАТА НА КОНЗОЛЕН ИЗХОД
      IV.6.ОБРАБОТВАНЕ НА ИЗКЛЮЧЕНИЕ
    • от силвия димитрова стефанова
      Здравейте! Може ли да ми помогнете с точка II.6. Това е условието:
      Да се състави клас Страница BookPage Скрити член променливи: Номер на страница‐ число int; Съдържание – низ string; Публични функции: II.1.КОНСТРУКТОРИ – ЕКСПЛИЦИТЕН, ПОДРАЗБИРАЩ СЕ; II.2.ЧЕТЕНЕ/ЗАПИС II.3.ЗА РАЗМЯНА НА СЪДЪРЖАНИЕ НА СТРАНИЦА С ПОДАДЕНАТА КАТО ПАРАМЕТЪР РЕФЕРЕНЦИЯ КЪМ СТРАНИЦА; II.4.OPERATOR == СРАВНЯВА ПО ВСИЧКИ ДАННИ II.5.OPERATOR< ЗА СРАВНЕНИЕ ЗА ПО‐МАЛКО НА ПОДАДЕНИЯ ПАРАМЕТЪР ОБЕКТ С ТЕКУЩИЯ ПО НОМЕР НА СТРАНИЦА II.6.ПРЕОБРАЗУВА / ВРЪЩА НИЗ ОТ ЧЛЕНОВЕТЕ НА КЛАСА II.7.OPERATOR<<(ИЗВЕЖДА В УКАЗАН ИЗХОДЕН ПОТОК) II.8.OPERATOR>>(ЧЕТЕ ОТ УКАЗАН ВХОДЕН ПОТОК) Направила съм това:
      class BookPage { private: int NumberPage; //номер на страница string Contents; //съдържание public: BookPage(int numberPage, string contents) { NumberPage = numberPage; Contents = contents; } BookPage() { NumberPage = 0; Contents = " "; } const int& getNumberPage()const { return NumberPage; } const string& getContents()const { return Contents; } void setNumberPage(const int& sNumPege) { NumberPage = sNumPege; } void setContents(const string& sContents) { Contents = sContents; } bool operator == (const BookPage& book)const { return this->NumberPage == book.NumberPage, this->Contents == book.Contents; } bool operator < (const BookPage& number) { return this->NumberPage < number.NumberPage; } friend ostream& operator <<(ostream& out, const BookPage& book) { out << book.NumberPage << " " << book.Contents; return out; } friend ifstream& operator >> (ostream& in, BookPage& book) { cin >> book.NumberPage >> book.Contents; return in; } };  
    • от силвия димитрова стефанова
      Здравейте! Може ли да ми помогнете дали това е правилно направено.
      BookEditor::BookEditore() { BookPage::BookPage(); GenerateBook = 0; NumberPages = ""; } ListGenerateBook(string ownerBook, int 278 pages) { GenerateBook(adress); GenerateBook::ownerBook; BookPage::278 pages BookPage = Bookwords; BookEditor = getArea; } void swapPages(int86, int second 45) { BookPage::setAdress(obj.GenerateBook::getAdress()); BookPage::setArea(obj.GenerateBook::getArea()); BookPage::setHeight(obj.GenerateBook::getHeight()); BookPage = obj.BookPage; m_strOwner = obj.m_strOwner; }  

    • от Cns a1b1c1
      Някой може ли да ми помогне за една задача C++ ... Трудно ми е не мога се справям. Ще съм ви много благодарна!
      Зад.
      Зададен е едномерен масив от цели числа А0, А1,...,Аn-1, където n e кратно на 2. Да се състави програма, която изчислява разликата между сумата на елементите от първата половина и сумата на елементите от втората половина на масива.
  • Дарение

×
×
  • Добави ново...

Информация

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