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

Не могу найти ошибку в коде(постфиксная запись инфиксного выражения) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ C++ switch для переменных char http://www.cyberforum.ru/cpp-beginners/thread1001570.html
можно ли switch применять к переменным типа char или в чём тогда ошибка, подчёркивает строку case 'London':? #include <iostream> using namespace std; int main(){ char born; int old; int mark = 0; cout << "\t First" << endl;
C++ В прямогольной матрице определить количество столбцов, не содержащих ни одного нулевого элемента и расположить их в соответствии с ростом характеристи Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента. Характеристикой строки целочисленной матрицы назовём сумму её положительных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик. http://www.cyberforum.ru/cpp-beginners/thread1001559.html
Трудности при создании класса C++
Делаю приложения на Windows Forms. Надо сделать иерархию классов. В абстрактом классе описал нужные поля, но при попыте скомпилировать программу сразу ругаеться на на 2 поля типа string в классе. Если забрать ети две строчки, то все нормально. class vehicle { protected: string brand; // тут ругаеться string model; // и тут float engine_volume; int number_of_cylinders; enum...
Ввод данных в контейнер set C++
Здравствуйте! В первое множество элементы вводятся нормально, но вот во второе множество кладется только последнее значение из первого множество (т.е. значение i в данный момент). Подскажите в чем ошибка switch(ch) { case '1': system("cls"); cout<<"Введите элементы множества А={ "; do { cin>>i; s1.insert(i); ch2=getchar();
C++ Error C2440 невозможно преобразовать "void *" в "char * http://www.cyberforum.ru/cpp-beginners/thread1001504.html
Уважаемые форумчане. Не могу понять почему ему не нравятся указатели. Запускал прогу на разных компиляторах одна и та же ошибка. Error C2440 невозможно преобразовать "void *" в "char *. А именно в 12 строке и в 24. Помогите разобраться в чем ошибка? #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdarg.h> using namespace System;
C++ Отсортировать матрицу по столбцам в порядке уменьшения значений элементов Здраствуйте, помогите пожайлуста написать код для такой задачи. Дана действительная матрица порядка NxM. Отсортировать матрицу по столбцах. В пораядке уменьшения значений ее элементов. подробнее

Показать сообщение отдельно
kondusov
2 / 2 / 0
Регистрация: 01.06.2013
Сообщений: 153

Не могу найти ошибку в коде(постфиксная запись инфиксного выражения) - C++

08.11.2013, 12:31. Просмотров 283. Ответов 0
Метки (Все метки)

Использую цифры от 1 до 9,Ю пишу для простеньких выражний . Всё отлично работает когда выражение без скобок. Когда ввожу выражение со скобками - он мне даже ответ не выводит ответ(критически закрывается локальный загрузчик виндовс). Что не так? В переменной kol храню колво данных в стеке








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
#include <iostream>
#include <string>
 using namespace std;
struct stek
{
    char d;
    struct stek *next; // указатель на следующий элемент списка (стека)
};
 
 
void push(stek* &next, int d)
{
    stek *pv = new stek;      // объявляем новую динамическую переменную типа stek
    pv->d = d;                // записываем  значение, которое помещается в стек
    pv->next = next;          // связываем новый элемент стека с предыдущим
    next = pv;                // новый элемент стека становится его вершиной
}
 
char pop(stek* &next)
{  
    char temp = next->d;     // извлекаем в переменную temp значение в вершине стека
    stek *pv = next;        // запоминаем указатель на вершину стека, чтобы затем
                            // освободить выделенную под него память
    next = next->next;      // вершиной становится предшествующий top элемент
    delete pv;              // освобождаем память, тем самым удалили вершину
    
    return temp;          // возвращаем значение, которое было в вершине
}
int kol;
int main()
{
    string s, otvet;
    stek*p=0;
 
 
getline(cin, s);
 
cout<<"\n vashe virazhenie v obi4noy zapisi :"<<s<<"\n";
for(int i=0;s[i]!='\0';i++)
    {
        if (s[i]>'0'  &&  s[i]<'10')
        otvet+=s[i];
            if (s[i]=='+' || s[i]=='-' ||s[i]=='*' || s[i]=='/'){ 
            push (p,s[i]);
            kol++;
        }
                if (s[i]=='(')
                {
                push(p,s[i]);
                kol++; 
                }
                    if(s[i]==')')
                    {
                    while (pop(p)!='(')
                        otvet+=pop(p);
                        
                    }
 
 
 
}
while(pop(p)!='(')
    otvet+=pop(p);
cout<<"POSTFIKS ---       "<<otvet<<endl;
return 0;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru