简单计算器(不支持括号)
2012-07-15 20:08
120 查看
include <stdio.h> #include <string.h> #include <stdlib.h> struct count { int num; char mark; struct count *next; }; struct count *top1; struct count *top2; void creat_list() { top1=(struct count*)malloc(sizeof(struct count)); top2=(struct count*)malloc(sizeof(struct count)); top1=NULL; top2=NULL; } void insert_list1(int num) { struct count *p=(struct count *)malloc(sizeof(struct count)); struct count *q=top2; if(q!=NULL) { if((q->mark)=='*') { p=top1; num=num*(top1->num); top1=top1->next; top2=top2->next; } else if((q->mark)=='/') { num=(top1->num)/num; top2=top2->next; top1=top1->next; } } p->num=num; p->next=top1; top1=p; } void display_list1() { struct count *p=top1; printf("num:"); while(p) { printf("%d\t",p->num); p=p->next; } printf("\n"); } void display_list2() { struct count *p=top2; printf("mark:"); while(p) { printf("%c\t",p->mark); p=p->next; } printf("\n"); } void insert_list2(char ch) { if(ch=='\0'); else { struct count *p=(struct count*)malloc(sizeof(struct count)); p->mark=ch; p->next=top2; top2=p; } } void show(char a[]) { int n=0; int i=0; int num=0; n=strlen(a); for(i=0;i<=n;i++) { if(a[i]>='0'&&a[i]<='9') { num=num*10+a[i]-48; } else { insert_list1(num); if(i!=n) { insert_list2(a[i]); } num=0; } } } void math_list() { int num=0; if((top1->next)==NULL) { ; } else { while(top1!=NULL) { if(top2==NULL) { num=num+top1->num; top1=top1->next; } else { switch(top2->mark) { case '+': num=num+top1->num; top1=top1->next; top2=top2->next; break; case '-': num=num-top1->num; top1=top1->next; top2=top2->next; break; default: printf("input error!"); } } } } printf("the result is :%d\n",num); } int main() { char a[20]; creat_list; printf("please input\n"); scanf("%s",a); show(a); // display_list1(); // display_list2(); math_list(); return 0; }
相关文章推荐
- stl表达式求值(支持括号空格版)
- 计算表达式的值(仅含有四则运算和支持括号嵌套,浮点数运算)
- C#计算器(递归,WebService) 支持加减乘除括号等 (一)
- C#实现计算器,支持括号运算
- 【汇编】计算器,支持带括号的四则混合运算
- 逆波兰式实现四则运算表达式计算器支持括号、十六进制
- 支持括号、分数计算的四则运算计算器
- python3简单实现支持括号的加减乘除运算
- C#计算器(递归,WebService) 支持加减乘除括号等 (二)
- 【数据结构】用栈实现的简单计算器(先转换为后缀表达式、可以计算带括号的)
- 四则运算表达式解析和求值(支持括号、小数)
- () 括号可用于支持代码块
- 二柱子问题扩充:1题目避免重复;2可定制(数量/打印方式);3 可以控制下列参数:是否有乘除法,是否有括号,数值范围,加减有无负数,除法有无余数,是否支持分数(真分数,假分数,...),是否支持小数,(精确到多少位),打印中每行的间隔可调整;
- [原创]python之简单计算器(超详解,只有基本功能+-*/,还有括号处理)
- C++简单计算器实现(四则运算加括号)
- C语言简单计算器(基于栈和逆波兰表达式)这几天忙着开学的事宜,一直没时间刷提,就把今天刚做好的课程设计——简易计算器贴在这给大家参考!(计算小数时要用0减正数并用括号括起来,这一点不足以后再改进)
- JavaScript实现计算复杂计算公式(支持括号)
- java实现简单计算器算法--支持浮点数运算
- C语言:(新)四则计算器(支持括号和次方运算)
- 使用传统算法进行表达式求值(数字支持科学表示法,操作符支持加减乘除乘方, 支持括号, 不支持函数)