作业帮 > 综合 > 作业

求C 语言编写的计算器程序,能进行四则混合运算的,包括流程图,

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/22 08:26:19
求C 语言编写的计算器程序,能进行四则混合运算的,包括流程图,
送你一个命令行计算器
#include
#include
#define MAX_STACK_SIZE 100
#define STACK_OVERFLOW_ERROR 1
#define STACK_UNDERFLOW_ERROR 2
#define UNKNOWN_CHARACTER_ERROR 4
#define UNMATCHED_PARENTHESES 8
#define OPERATOR_ERROR 16
#define NULL_EXPRESSION 32
#define DIVIED_BY_ZERO 64
typedef struct
{
\x05double s[MAX_STACK_SIZE];
\x05int size;
}stack;
int global_error_flag = 0;
int error()
{
\x05return global_error_flag>0;
}
void set_error_flag(int clear = 0)
{
\x05global_error_flag = global_error_flag | clear;
}
void clear_error_flag(int clear = global_error_flag)
{
\x05if(global_error_flag & clear > 0)
\x05\x05global_error_flag = global_error_flag ^ clear;
}
void init(stack* s)
{
\x05s->size = 0;
}
void push(stack* s,double i)
{
\x05if(s->size>=MAX_STACK_SIZE)
\x05{
\x05\x05fputs("Stack Overflow",stderr);
\x05\x05set_error_flag(STACK_OVERFLOW_ERROR);
\x05}
\x05s->s[(s->size)++] = i;
}
double top(stack* s)
{
\x05if(s->sizes[(s->size)-1];
}
double pop(stack* s)
{
\x05double temp = top(s);
\x05--(s->size);
\x05return temp;
}
int empty(stack* s)
{
\x05return s->size == 0;
}
void show_error_msg(char* s,char* p,char* e,char* msg)
{
\x05fputs("Error:",stderr);
\x05fputc('\n',stderr);
\x05fputs(s,stderr);
\x05fputc('\n',stderr);
\x05while(s