Categories
- 4th semester (27)
- 5th semester (3)
- ADA (13)
- Assembly Level Language (12)
- BE (45)
- C Language Programming (5)
- C language (20)
- C++ Language (5)
- CCP Lab programing (3)
- Computer Programming Lab (3)
- DAA Lab Programming (13)
- Data Structure and C++ laboratory Program (6)
- Data Structure and C++ labotary Program (5)
- Design and Analysis of algorithm (14)
- First Year (5)
- MASM (12)
- Microprocessor (12)
- Microprocessor lab program (12)
- System Software & OS Laboratory (5)
- Unix program (4)
- bachelor of engineering (30)
- basic (1)
- basic mathematics (2)
- beginners (10)
- c++ program (9)
- calculations (7)
- computer science (30)
- downloadable (5)
- engineering syllabus (4)
- simple program (6)
Trend Posts
Blogger news
Author
Followers
Blog Archive
-
▼
2013
(20)
-
▼
September
(10)
- Lab Program No:13|OCTAL IMPLEMENTATION Using Opera...
- Lab Program No:3|Evaluation of postfix Expression|...
- Simple program C++ program with Singleline Inherit...
- Simple C++ Program with Operator Overloading
- Simple C++ Programing with Paranthesised Constructors
- Simple C++ Program|To read and write to a File
- Program ( EMPLOYEE...)|Second Year Data structure/...
- Program ( INFIX to POSTFIX)|Second Year Data struc...
- Add two integers|Simple program
- Read an array and print
-
▼
September
(10)
Thursday, September 26, 2013
Design, develop and execute a program in C to Evaluate a valid postfix expression using stack. Assume that the postfix expression is read as a single line consisting of non-negative single digit operands and binary arithmetic operators. The arithmetic operators are +(add),-(subtract),*(multiply) and / (divide)
#include<stdio.h>
#include<conio.h>
#include<ctype.h>
#include<math.h>
char postfix[20];
int top=-1;
float value[20],stack[20];
float eval();
void push(float);
float pop();
void main()
{
int i=0;
float result;
clrscr();
printf("enter a valid postfix expression\n");
scanf("%s",postfix);
while(postfix[i]!='\0')
{
if(isalpha(postfix[i]))
{
printf("enter the value of %c\n",postfix[i]);
scanf("%f",&value[i]);
}
i++;
}
result=eval();
printf("the value of the expression is %.2f\n",result);
getch();
}
float eval()
{
int i=0;
float op1,op2,result;
while(postfix[i]!='\0')
{
if(isalpha(postfix[i]))
push(value[i]);
else
{
op2=pop();
op1=pop();
switch(postfix[i])
{
case'+':
push(op1+op2);
break;
case'-':
push(op1-op2);
break;
case'*':
push(op1*op2);
break;
case'/':
push(op1/op2);
break;
};
}
i++;
}
result=pop();
return result;
}
void push(float value)
{
top=top+1;
stack[top]=value;
return;
}
float pop()
{
return stack[top--];
}
Screenshot:
Subscribe to:
Post Comments (Atom)
1 comments:
algorithm?
Post a Comment
You are very Important to Us...
STAY TUNE...