#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define MAXOP 100
#define NUMBER '0'
int getop(char []) ;
void push(double) ;
double pop(void) ;
/*逆波兰式输入计算器程序*/
main()
{
char s[MAXOP] ;
int type ;
double op2 ;
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)
push(pop()/op2) ;
else
printf("error : zero divisor\n") ;
break ;
case '%' :
op2 = pop() ;
if(op2)
push(fmod(pop(),op2)) ;
else
printf("error:") ;
break ;
case '\n' :
printf("\t%.8g\n",pop()) ;
break ;
default :
printf("ERROR! unknown command %s \n&
c语言 逆波兰式输入 计算器程序
最新推荐文章于 2021-10-20 10:31:03 发布