calculator
#include <stdio.h>
#include <stdlib.h> typedef enum
{
FALSE = ,
TRUE
}BOOL; void calculator(void); int main(void)
{
char y = ' ';
y = 'y';
while('y' == y)
{
printf("start calculator:\n");
calculator();
printf("restart?,printf 'y' to continue\n");
scanf(" %c",&y);
printf("%c\n",y);
}
return ;
} void calculator(void)
{
char c;
char ucOperator = ' ';
int k = ;
int value = ;
int lastValue = ;
int result = ;
int lastk; printf("start calculator input:\n");
/* while((c = getchar()) == '\n'||c == ' ')
{
;
}
//this does work,the below way is more simple
*/
scanf(" %c",&c); //filter space and return
do{
if(c >= '' && c <= '')
{
if(!value)
{
value = c - '';
}
else
{
value = value* + c- '';
}
continue;
} if('+' == c)
{
lastk = k;
k = ;
}
else
{
if('-' == c)
{
lastk = k;
k = -;
c = '+';
}
} switch(c)
{
case '+':
switch(ucOperator)
{
case '*':
result += lastValue * value * lastk;
break;
case '/':
result += lastValue / value * lastk;
break;
case '+':
result += value * lastk;
break;
case ' ':
result += value;
break;
default:
break;
}
ucOperator = '+';
break; case '*':
lastValue = value; ucOperator = '*';
break;
case '/':
lastValue = value; ucOperator = '/';
break;
case '=':
if('+' == ucOperator)
{
result += value * k;
}
if('*' == ucOperator)
{
result += value * lastValue * k;
}
if('/' == ucOperator)
{
result += lastValue / value * k;
}
printf("%d\n",result);
result = ;
ucOperator = ' ';
break;
default:
break;
}
value = ;
}while((c = getchar()) != '\n');
}
calculator的更多相关文章
- [LeetCode] Basic Calculator II 基本计算器之二
Implement a basic calculator to evaluate a simple expression string. The expression string contains ...
- [LeetCode] Basic Calculator 基本计算器
Implement a basic calculator to evaluate a simple expression string. The expression string may conta ...
- Basic Calculator II
Implement a basic calculator to evaluate a simple expression string. The expression string contains ...
- Windows Universal 应用 – Tip Calculator
声明 以下内容取材于 Bob Tabor 的课程<Windows Phone 8.1 Development for Absolute Beginners>,链接地址为:http://ww ...
- Calculator(1.5)
Calculator(1.5) Github链接 ps.负数的处理未完成 解题过程中遇到的困难和解决 <stack>的使用: 认真研究了栈,基本上掌握了用法,与<queue>的 ...
- Calculator(1.0)
Calculator(1.0) Github链接 解题过程中遇到的困难 对于c++中类和对象的使用不够明确,看了c++的视频教程学会了用类和对象来写程序. 不会使用<queue>,在网上查 ...
- 数据结构与算法(1)支线任务2——Basic Calculator
题目:https://leetcode.com/problems/basic-calculator/ Implement a basic calculator to evaluate a simple ...
- Basic Calculator
本博客介绍leetcode上的一道不难,但是比较经典的算法题. 题目如下: Implement a basic calculator to evaluate a simple expression s ...
- Matrix Calculator
表达式分析+矩阵+计算器+寄存器=矩阵计算器 怎么想起来搞这个呢.. //刚看龙书兴致勃勃要搞表达式分析 这个寄存器比较简陋,26字母+4缓存,//字母不分大小写 当然,不只能算矩阵,还能算数= = ...
随机推荐
- oracle中Update方法
1.两表(多表)关联update -- 被修改值由另一个表运算而来 update customers a set city_name=(select b.city_name from tmp_cust ...
- oracle like模糊查询
简单的方式,使用"%" 和 "_" 字符匹配操作可以使用通配符 "%" 和 "_": %:表示任意个字符,包括零个: _ ...
- 使用Xamarin.Forms平台开发移动应用指南
下载书:链接: http://pan.baidu.com/s/1c29H9KG 密码: 7esm 注:捣鼓虚拟机把Hyper-V关闭,后来Xamarin搞挂了,所以暂停翻译. 第1章 Xamarin. ...
- 80、Android Support v4、v7、v13的区别以及应用场景
一.简介 在 Android 开发中,为了使用高版本API的新特性,需要添加额外的包来使用这些新特性,这就是 Android Support 包 二.分类 Android Support v4: 这个 ...
- 【菜鸟学习jquery源码】数据缓存与data()
前言 最近比较烦,深圳的工作还没着落,论文不想弄,烦.....今天看了下jquery的数据缓存的代码,参考着Aaron的源码分析,自己有点理解了,和大家分享下.以后也打算把自己的jquery的学习心得 ...
- JAVA编程规范(下)
JAVA编程规范(下) 2016-03-27 6. 代码的格式化 6.1 对代码进行格式化时,要达到的目的 1. 通过代码分割成功能块和便于理解的代码段,使代码更容易阅读和理解: 2. ...
- 查看APK方法数的工具dex-method-counts
做APK方法总能遇到方法数超限的问题(主要是方法数, 字段数, String数.等各种数都可能超过65k导致不能安装) 除了大公司都自己做了一些检查方法. 网上还有一些开源的查询工具. 给大家推荐一个 ...
- linux中mysql运程连接时错误host ‘192.168.0.1’ is not allowed to connect to this MySql server
1.改表法 可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "u ...
- How to pronounce symbols on keyboard
Refefrence: http://answers.yahoo.com/question/index?qid=20100607151104AAtQxhc ~ “tilde” or “tweedle” ...
- 使用appium进行ios测试,启动inspector时遇到的问题(一)
最近在公司,让做ios的自动化测试,因为以前做过android的自动化测试,用的也是appium,觉得没什么,结果一开始在搭建环境就遇到了很多的问题,现在将我遇到的问题,以及解决方法,给大家分享出来. ...