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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Глашатай
0 / 0 / 0
Регистрация: 22.04.2011
Сообщений: 5
#1

Переделать Стек из однозначных чисел в многозначные - C++

22.04.2011, 09:52. Просмотров 308. Ответов 0
Метки нет (Все метки)

Помогите пожалуйста переделать СТЕК из однозначных чисел в многозначные.

#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct lifo
{
char el;
struct lifo *next;
} Stack;

Stack* Head=NULL;

void Push(char element)
{
Stack *p;
p=(Stack*)malloc(sizeof(Stack));
if(p!=NULL)
{
p->el=element;
p->next=Head;
Head=p;
}

else
{
puts("Error! Not free memory!");
}
}

char Pop()
{
char a=Head->el;
Stack* p=Head;
Head=Head->next;
free(p);
return a;
}

int IsOperation(char ch)
{
if(ch=='+' || ch=='-' || ch=='*' || ch=='/')
return 1;
return 0;
}

int Prior(char oper)
{
if(oper=='+' ||oper=='-' )
return 1;
if(oper=='*' ||oper=='/')
return 2;
return 0;
}

int calculate(char postfix[])
{
int a=0,b=0,ind=0,rez=0;
for(;postfix[ind]!=NULL;ind++)
{
switch(postfix[ind])
{
case '+':b=Pop();a=Pop();
rez=a+b; Push(rez);break;
case '-':b=Pop();a=Pop();
rez=a-b; Push(rez);break;
case '*':b=Pop();a=Pop();
rez=a*b; Push(rez);break;
case '/':b=Pop();a=Pop();
rez=a/b; Push(rez);break;
default: Push(postfix[ind]-'0');break;
}
}
return rez;
}


void main()
{
char infix[100],postfix[100],q;
int i=0,j=0,len;
int rezult;

clrscr();
printf("STACK\n\n");
printf("Vvedite stroky\n");
gets(infix);
Push('(');
len=strlen(infix);
infix[len]=')';
infix[len+1]='\0';
while(Head!=NULL)
{
for(;infix[i]!= '\0';i++)
{
if(infix[i]=='(')
Push('(');
else
if(infix[i]==')')
{

for(;(q=Pop())!= '(';j++)
postfix[j]=q;
}
else if(IsOperation(infix[i]))
{
do{
q=Pop();
if(Prior(q)>=Prior(infix[i]))
{
postfix[j]=q;
j++;
}
else{
Push(q);
break;
}
}while(1);

Push(infix[i]);
}
else
{
postfix[j]=infix[i];
j++;
}
}
}
postfix[j]='\0';
puts(postfix);
rezult=calculate(postfix);
printf("rezult = %d",rezult);
getch();
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2011, 09:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переделать Стек из однозначных чисел в многозначные (C++):

Подсчитать количество однозначных положительных и однозначных отрицательных чисел - C++
Пользователь вводит с клавиатуры N чисел. Подсчитать количество однозначных положительных и однозначных отрицательных чисел.

Программа которая выводит пример на умножение двух однозначных чисел - C++
Доброй ночи форумчане! Помогите пожалуйста с задачкой. Условие: Написать программу которая выводит пример на умножение двух однозначных...

Распечатать корни всех чисел от 1 до N, не имеющих однозначных делителей (не равных числу) - C++
Разработать программу на языке программирования С++. В диалоговом режиме ввести число N (В диапазоне от 1 до 1000). Все числа от 1 до N...

Пример на умножение двух однозначных чисел, запрос и проверка ответа пользователя (C++ Builder) - C++
Написать программу, которая выводит пример на умножение двух однозначных чисел, запрашивает ответ пользователя, проверяет его и выводит...

Даны три случайных однозначных числа. Вывести на экран квадраты нечетных чисел. Использовать подпрограмму, опр - C++
Даны три случайных однозначных числа. Вывести на экран квадраты нечетных чисел. Использовать подпрограмму, определяющую нечетность числа.

Многозначные числа - C++
Помогите разобраться с задачкой... Дано многозначное число. Вывести на печать число, состоящее из цифр, которые встречаются более одного...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2011, 09:52
Привет! Вот еще темы с ответами:

Стек чисел - C++
Помогите пожалуйста написать программу, которая считывает текст из файла и создаёт стек чисел, содержащихся в тексте. Вывести полученный...

стек чисел - C++
напишите пожалуйста программу, которая считывает строку символов, выбирает числа из этой строки и записывает их в стек. вывести содержимое...

Создать стек, для суммирования чисел - C++
Столкнулся с заданием в котором нужно создать стек при этом необходимо реализовать разбор строки для суммирования чисел. Они представляются...

Стек для хранения целых чисел (int) - C++
Стек для хранения целых чисел (int). В классе должны быть функции добавления элемента на вершину стека (push), чтение верхнего элемента...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru