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

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

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

     

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


Здравейте хора, кякой може ли да каже как да оправя програмата. Мерси предварително.

Да се направи функция за копиране на дадена опашка C++ 

 

#include <iostream>
using namespace std;
struct elem
{
    int key; elem *next;
};

void push(elem * &first, elem * &last, elem * p, int n);
int pop(elem * &first, elem * &last, elem * &p, int &n);
void copyQueue(elem * first, elem * last, elem * p, elem * &first2, elem * &last2, elem * &p2, int num);

int main()
{
    int num;

    elem *first = NULL, *last = NULL, *p;
    elem *first2 = NULL, *last2 = NULL, *p2;


    cout << "\n ~~~ Enter a symbol to stop entering numbers ~~~\n";
    cout << "\n Enter numbers:  \n";
    while (cin >> num)
        push(first, last, p, num);
    cout << "\n The numbers are:  \n";
    //while (pop(first, last, p, num))
//    {
//        cout << num << " ";
//    }


    copyQueue(first, last,p , first2, last2, p2, num);
    while (pop(first2, last2, p2, num))
    {
        cout << num << " ";
    }

    cout << "\n";

    while (pop(first, last, p, num))
    {
        cout << num << " ";
    }
}

void push(elem * &first, elem * &last, elem * &p, int n)
{
    p = last;
    last = new elem;
    last->key = n;
    last->next = NULL;
    if (p != NULL) p->next = last;
    if (first == NULL)
    {
        first = last;
    }
}

int pop(elem * &first, elem * &last, elem * &p, int &n)
{
    if (first)
    {
        n = first->key;
        p = first;
        first = first->next;
        if (first == NULL) last = first;
        delete p;
        return 1;
    }
    else
        system("pause");
    return 0;
}

void copyQueue(elem * first, elem * last, elem * p, elem * &first2, elem * &last2, elem * &p2, int num)
{

    while (pop(first, last, p, num))
    {
        push(first2, last2, p2, num);
    }

}
 

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


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

Това не ми звучи логично много

nt pop(elem * &first, elem * &last, elem * &p, int &n)
{
    if (first)
    {
        n = first->key;
        p = first;
        first = first->next;
        if (first == NULL) last = first;
        delete p;
        return 1;
    }
    else
        system("pause"); //защо спираш програмата?	
    return 0;
} 

 

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


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

Това не ми звучи логично много

nt pop(elem * &first, elem * &last, elem * &p, int &n)
{
    if (first)
    {
        n = first->key;
        p = first;
        first = first->next;
        if (first == NULL) last = first;
        delete p;
        return 1;
    }
    else
        system("pause"); //защо спираш програмата?	
    return 0;
} 

Без да искам съм цъкнал ctr+V. В програмата има по-големи проблеми от това, ако може да помогнеш. 

 

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


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

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

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

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

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

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

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

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

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


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

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

  • Горещи теми в момента

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

    • от силвия димитрова стефанова
      Здравейте! Бихте ли ми помогнали за създаване на програма използвайки getchar() за обръщане не дума/изречение? Рабхотя на Microsoft Visual Studio 2019 C++.
    • от силвия димитрова стефанова
      Здравейте ! Може ли да ми помогнете да направя меню? Ето го и условието: Да се напише компютърна програма, реализираща информационна система за продажба на мобилни телефони (марка, модел, цвят, цена, размер на вградената памет, диагонал на екрана, работа с две сим карти, брой телефони от този модел). 😊 БЛАГОДАРЯ ПРЕДВАРИТЕЛНО!
    • от М. Проданов
      Здравейте! Имам следната задача -> да напиша програма, която чете вход от последователности от латински букви. Т.е. имам предвид при входа да напиша малки латински букви и на изхода да извежда големи. 
      Написах програмата, но след компилиране ми изкарва грешката -> ISO C++ forbids comparison between pointer and integer.
      Ако някой може да помогне ще му бъда много благодарен.  
      Благодаря за отделено време и внимание!
      Под описанието е CPP файла. 
       
       
       
      Array.cpp
    • от RavenFrost
      Здравейте,
      Иматели някакви препоръки за модели или конфигурации за настолен компютър. Ще използвам компютъра за програмиране, понеже съм първи курс информационни технологии, и имам бюджет от около 1000-1100,но предложения надхвърлящи тази цена също са добре дошли. Търся нещо с възможост за надграждане и с по-силен процесор и повечко RAM(от порчдъка на 8+).
      Благодаря предварително. : ) 
    • от М. Проданов
      Здравейте! Изпитвам затруднение с една задача по програмиране C++.
      Някой може ли да ми помогне?  
      За тези, които  няма да помагат и ще пишат безсмислени  коментари  от типа на: тази задача е лесна, научи: циклите,операторите и функциите и тогава пиши форум - моля да напуснат! Знам всички оператори, функции и цикли. Не съм назад с материала.
      Благодаря за вниманието! 
      Ето го и условието!
       
      Дадено:
      Мед:
      1кг акациев - А1 лева
      1кг. липов -А2 лева
      1кг.слънчогледов - А3 лева.

      Има 3 съда:
      1 съд - B1 кг.
      2 съд - B2 кг.
      3 съд - B3 кг.
      В кой съд какъв мед да сложи така че да получи най-много пари?
       
      Решение:
      Вход: ред 1 -> числата A1  A2  A3
      Ред 2: числата B1 B2 и B3
      Изход: едно число - максималната печалба, която може да се получи.
      Пример: Вход -> 7 2 9
      10 5 3
      Изход: 131лв.
       
      Пускам и cpp файла 
       
      task4.cpp
  • Дарение

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