Question: Separate this into separate header and code files, so that none of the functions are implemented inside main.c. Include a link to all of your

Separate this into separate header and code files, so that none of the functions are implemented inside main.c. Include a link to all of your codes () as the answer

#include #include

#define MAXOP 100 #define NUMBER '0'

int getop(char []); void push (double); double pop(void);

int main() { int type; double op2; char s[MAXOP]; while ((type=getop(s)) != EOF){ switch(type){ case NUMBER: push(atof(s)); break; case '+': push(pop() + pop()); break; case '*': push(pop() * pop()); break; case '-': op2 = pop(); push(pop() - op2); break; case '/': op2= pop(); if (op2 != 0.0) push(pop()/op2); else printf("error: zero divisor "); break; case ' ': printf("\t%.8g ", pop()); break; default: printf("error: unknown command %s ", s); break; } } // ADD TEST CODE HERE FOR ALL THREE FUNCTIONS

return 0; }

#define MAXVAL 100 int sp =0; double val[MAXVAL];

void push(double f){ if (sp < MAXVAL) val[sp++]=f; else printf("error: stack full, can't push %g ", f); }

double pop(){ if (sp>0) return val[--sp]; else{ printf("error: stack empty "); return 0.0; } }

#include

int getch(void); void ungetch(int);

/* gets the next operator or operand */ int getop(char s[]){ int i, c; while( (s[0] = c = getch()) == ' ' || c == '\t') ; s[1]='\0'; if(!isdigit(c) && c != '.') return c; i = 0; if(isdigit(c)) while (isdigit(s[++i] = c = getch())) ; if ( c == '.') while (isdigit(s[++i] = c = getch())) ; s[i] = '\0'; if (c != EOF) ungetch(c); return NUMBER; }

#define BUFSIZE 100

char buf[BUFSIZE]; int bufp =0; /* get the next character, either from standard input or from the buffer (of character's that we placed 'back on' the buffer) */ int getch(void){ return (bufp > 0) ? buf[--bufp] : getchar(); }

/*populate the local buffer with characters you meant to 'put back' b/c you read too far*/ void ungetch(int c){ if (bufp >= BUFSIZE) printf("ungetch: too many characters "); else buf[bufp++] = c; }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!