Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2022, 14:10   #1
Zgrd60
 
Регистрация: 31.03.2022
Сообщений: 5
Вопрос Помогите подправить код, ошибка в том что когда пользователь вводит данные и после нажатия Enter, показывается длинный текст "Введите элементы списка"

Задание в том, что нужно поменять соседние элементы списка
Код:
#include <iostream>
using namespace std;
 
struct elenent
{
    int n;
    elenent* next;
};
void add(elenent*& list, int n)
{
    elenent* el = new elenent();
    el->n = n;
    el->next = 0;
    if (!list) list = el;
    else
    {
        elenent* p;
        for (p = list; p->next; p = p->next);
        p->next = el;
    }
}
void show(elenent* p)
{
    if (p)
    {
        for (; p; p = p->next) cout << p->n << " ";
        cout << endl;
    }
}
void swap(elenent* p, int pos)
{
    for (; p; p = p->next, pos++)
        if (pos % 2 == 0 && p->next)
        {
            int x = p->n;
            p->n = p->next->n;
            p->next->n = x;
        }
}
int main()
{
    elenent* list = 0;
    for (int i = 0; i < 20; i++)
{
    int t;
    cout >> "Введите элементы списка: ";
    cin>>t;
    add(list, t);
}
    add(list, i);
    show(list);
    swap(list, 0);
    show(list);
}
И при выводе
Введите элементы списка: 1 2 3 4 5 6 7 8 9
Введите элементы списка: Введите элементы списка: Введите элементы списка: Введите элементы списка: Введите элементы списка: Введите элементы списка: Введите элементы списка: Введите элементы списка: Введите элементы списка:
Zgrd60 вне форума Ответить с цитированием
Старый 26.04.2022, 14:12   #2
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Вы сами эту строчку в цикле выводите 20 раз
ForenLi вне форума Ответить с цитированием
Старый 26.04.2022, 14:48   #3
Zgrd60
 
Регистрация: 31.03.2022
Сообщений: 5
Вопрос

А как правильно сделать, её за цикл for вынести или он вовсе тут не нужен, подскажите пожалуйста
Zgrd60 вне форума Ответить с цитированием
Старый 26.04.2022, 14:53   #4
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Цитата:
Сообщение от Zgrd60 Посмотреть сообщение
её за цикл for вынести
Зависит от вашей задумки. Может вы и хотели ее на каждый элемент писать...

Цитата:
Сообщение от Zgrd60 Посмотреть сообщение
он вовсе тут не нужен
Т.к. вы вводите по элементно, то нужен.
ForenLi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пользователь вводит параметры a (a не равно 0) и b, на выходе имеем значение x, которое выводится с соответствующим сообщением "x =" PublicCoder Python 1 25.02.2020 03:08
Ошибка в программе PascalABC.NET. Работа с односвязным списком, указателями. "Посчитать всё элементы, у которых одинаковые соседи, добавить их количество в конец списка" kami_sa Помощь студентам 1 13.01.2018 12:27
[РЕШЕНО]: [C#]: когда пытаюсь присвоить переменной значение которое вводит пользователь, мне выдается ошибка мол ConvertToInt(); неприемлемо в данном контексте GRUB_666 Помощь студентам 0 07.01.2017 20:18
"введите текст из 100 литер..." katya36 Помощь студентам 39 22.12.2008 17:39
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51