逆波兰计算器的完整C代码怎么写
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章给大家介绍逆波兰计算器的完整C代码怎么写,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。/* 逆波兰计算器 */#include#include#include#inclu
千家信息网最后更新 2025年01月31日逆波兰计算器的完整C代码怎么写
这篇文章给大家介绍逆波兰计算器的完整C代码怎么写,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
/* 逆波兰计算器 */#include#include #include #include typedef double Elemtype;typedef struct StackNode { Elemtype data; struct StackNode *next;}StackNode, *pStackNode;typedef struct LinkStack { pStackNode top; int count;}LinkStack, *pLinkStack;//链栈创建和初始化pLinkStack InitStack ( void ){ pLinkStack s = (pLinkStack)malloc(sizeof(LinkStack)); s -> top = NULL; s -> count = 0; return s;}//链栈是否为空int StackEmpty( pLinkStack s ){ return (s -> top == NULL ? 1 : 0 );}//链栈入栈void Push( pLinkStack s, Elemtype e ){ pStackNode p = (pStackNode)malloc(sizeof(StackNode)); p -> data = e; if( s -> top != NULL ) p -> next = s -> top; s -> top = p; s -> count++;}//链栈出栈Elemtype Pop( pLinkStack s ){ Elemtype temp; pStackNode p; if( StackEmpty(s) ) exit(0); temp = s -> top -> data; p = s -> top; s->top = s->top->next; free(p); s->count--; return temp;}int main(){ char c; Elemtype temp1, temp2; char str[20]; int i=0; pLinkStack s = InitStack(); printf("请输入表达式 :\n"); scanf("%c", &c); while( c != '\n' ) { while( isdigit(c) || c=='.' ) {//过滤数字 str[i++] = c; str[i] = '\0'; if( i>=20 ) printf("出错: 输入的数据过大!\n"); scanf("%c", &c); if( c == ' ' ) { Push( s, atof(str)); i = 0; break; } } switch( c ) { case '+': temp1 = Pop( s ) ; temp2 = Pop( s ) ; Push( s, temp2 + temp1 ); break; case '-': temp1 = Pop( s ) ; temp2 = Pop( s ) ; Push( s, temp2 - temp1); break; case '*': temp1 = Pop( s ) ; temp2 = Pop( s ) ; Push( s, temp2 * temp1); break; case '/': temp1 = Pop( s ) ; temp2 = Pop( s ) ; Push( s, temp2 / temp1); break; default: break; } scanf("%c", &c); } printf("结果为: %f\n", Pop(s)); return 0;}
关于逆波兰计算器的完整C代码怎么写就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
计算器
波兰
代码
内容
更多
帮助
输入
不错
兴趣
小伙
小伙伴
数字
数据
文章
知识
篇文章
结果
表达式
参考
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
吉林机械软件开发项目信息
鹤壁金蝶销售软件开发
戒烟军团无法连接服务器
如何在前端显示数据库的数据
惠普服务器质保查询
凯美瑞数据库
dns服务器四川电信虚拟主机
如何组织网络安全宣传周活动
附加数据库过大
网络安全话你知
江苏室外农业信息系统数据库
难道吉他谱软件开发
服务器怎么选择
sqlite数据库的遍历
数据库结构的描述和定义是
数据库后面习题
哪个手机适合炒股软件开发
软件开发培训机构南京
山东网络技术单招试题
数据库和数据项之间
四川智慧团建软件开发
惠普服务器质保查询
软件开发工程师薪资表
程序设计、计算机网络技术
涪陵区媒体网络技术服务包括什么
日立电梯服务器登录密码
dellp340服务器怎么样
阳江无限软件开发报价行情
云链工业互联网科技有限公司
河南土地资产管理软件开发公司