Форум программистов, компьютерный форум CyberForum.ru

с++ стек (не удаляются элементы) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Многопоточное программирование, что лучше C++ 11, BOOST 1.53 или QT5 ? http://www.cyberforum.ru/cpp-beginners/thread825674.html
Привет! Я имею весьма смутное представление об мьютексах, стеках без блокировок и пр. Вот что сейчас лучше начать использовать в новом проекте и изучать, возможности C++ 11? последнего буста или последнего qt5?
C++ Определить количество особых элементов Прошу помочь с задачкой. Дана матрица А размером N x M. Определить k - количество особых элементов массива А, считая его элемент особым если он больше суммы остальных элементов его столбца. Если не сложно напишите решение пожалуйста. Заранее очень благодарен! http://www.cyberforum.ru/cpp-beginners/thread825672.html
Вычислите n-й член F(n) последовательности Фибоначчи C++
Вычислите n-й член F(n) последовательности Фибоначчи. В этой последовательности первые два члена равны 1, а каждый последующий равен сумме двух предыдущих
Строка: удалить все символы, которые не являются буквами или цифрами, и заменив каждую большую букву одноименно маленькой. C++
Дана строка s. Группы символов, внутри которых нет пропусков назвем словами. а) удалить все символы, которые не яквляются буквами или цифрами, и заменив каждую большую букву одноименно маленькой. б) удалить из каждой группы цифр, в которой больше двух цифр и перед которой стоит точка, все цифры, начиная с третьей(пример ab + 0,1973 – 1,1 превращяется в ab + 0,19 – 1,1) в) удалить из каждой...
C++ Обработка целых данных (найти все простые числа, имеющие возрастающую последовательность, сумма цифр которых равна M) http://www.cyberforum.ru/cpp-beginners/thread825626.html
Здравствуйте, дорогие форумчане. Мне нужна ваша помощь. Как реализовать данную программу? для натуральных чисел не превосходящих заданного числа N, найти все простые числа, имеющие возрастающую последовательность, сумма цифр которых равна M. ------------ Математически решается эта задача вот как: 1 - выписываем простые все числа не превосходящие N (решето эратосфена). 2 - Проверяем в...
C++ Программа, с помощью которой можно вводить данные о жильцах а также реализовывать следующие функции: Дан массив структурного типа где содержится следующая информация фамилия имя отчество дом улица квартира Написать программу с помощью которой можно вводить данные о жильцах а также реализовывать следующие функции: Варианты вывести на экран информацию обо всех однофамильцах живущих на заданной улице Если введена несуществующая улица то программа должна выдать сообщение об ошибке. Данные... подробнее

Показать сообщение отдельно
ask13
0 / 0 / 0
Регистрация: 02.04.2013
Сообщений: 8
02.04.2013, 11:25     с++ стек (не удаляются элементы)
не удаляются элементы из стека. если кто увидит, где ошибка, скорее всего логическая, подскажите пожалуйста.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <stdio.h>
#include <conio.h>
#include <windows.h>
 
 
int main()
{
    struct node
{
    char info;
    node *link;
};
 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    node *top, *k;
    char w;
    top = NULL;
    puts("Введите число:");
    scanf(" %c", &w);
    while (!feof(stdin))
    {
        k = new node;
        k->link = top;
        k->info = w;
        top = k;
        printf("Введите число:\n");
        scanf(" %c", &w);
    }
    /* Вывод построенного стека */
    k = top;
    while (k != NULL)
    {
        printf("%c", k->info);
        k = k->link;
    }
    // Поиск максимального значения
    k = top;
    int max = top->info;
    while (k != NULL)
    {
        if (k->info > max)
        {
            max = k->info;
            k = k->link;
        }
    }
    // Удаление узлов стека, содержащих максимальное значение
    k = top;
    node *l = top;
    // Указатель на предыдущий узел
    while (k != NULL)
    {
        if (k->info == max)
        {
            if (k == top)
            { // Если максимальный - вершина
                top = k->link;
                delete k;
                k = top;
            }
            else
            { // Ecли максимальный не веpшина
                l->link = k->link;
                delete k;
                k = l->link;
            }
        }
        else
        { // Eсли не максимальный
            l = k;
            k = k->link;
        }
    }
    puts("Стек после удаления максимального:");
    k = top;
    while (k != NULL)
    {
        printf("%c", k->info);
        k = k->link;
    }
    
    getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru