#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语言 逆波兰式输入 计算器程序
最新推荐文章于 2022-08-02 15:50:40 发布
这是一个使用C语言编写的逆波兰式表达式计算器程序。它读取输入的逆波兰式表达式,通过栈操作进行计算,支持加、减、乘、除、取模等运算。程序包括了主函数main、栈操作函数push和pop、获取操作符函数getop以及其他辅助函数。用户输入的每个操作数或运算符都会被正确处理,遇到除以零的情况会给出错误提示。
摘要由CSDN通过智能技术生成