All pastes #223724 Raw Edit

Someone

public c v1 · immutable
#223724 ·published 2006-10-27 01:49 UTC
rendered paste body
#include <stdio.h>#include <string.h>#define SIZE 100int stack[SIZE];int *start=stack;int *point=stack;int main() {	char tmp;	int a;	int b;	int temp;	char string[100];	tmp=getchar();	while (!feof(stdin)) {		switch(tmp) {		case '+':			if(strcmp(string, ""))				push(atoi(string));			sprintf(string, "");			push(pop()+pop());			break;		case '-':			if(strcmp(string, ""))				push(atoi(string));			sprintf(string, "");			a=pop();			b=pop();			push(b-a);			break;		case '*':			if(strcmp(string, ""))				push(atoi(string));			sprintf(string, "");			push(pop()*pop());			break;		case '/':			if(strcmp(string, ""))				push(atoi(string));			a=pop();			b=pop();			sprintf(string, "");			push(b/a);			break;		case 'p':			temp=pop();			printf("%i\n", temp);			push(temp);			break;		case 'n':			printf("%i\n", pop());			break;		case 'q':			exit(0);		case ' ':			if(strcmp(string, ""))				push(atoi(string));			sprintf(string, "");			break;		case '\n':			if(strcmp(string, ""))				push(atoi(string));			sprintf(string, "");			break;		default:			snprintf(string, 100, "%s%c", string, tmp);			break;		}		tmp=getchar();	}}int push(int num) {	if((start+SIZE)!=(point++)) {		*point=num;		return *point;	} else {		printf("Stack overflow.\n");		return(1);	}}int pop() {	if(point!=start) {		int tmp=*point;		*point=0;		point--;		return(tmp);	} else {		int tmp=*point;		*point=0;		return(tmp);	}}