#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的更多相关文章

  1. [LeetCode] Basic Calculator II 基本计算器之二

    Implement a basic calculator to evaluate a simple expression string. The expression string contains ...

  2. [LeetCode] Basic Calculator 基本计算器

    Implement a basic calculator to evaluate a simple expression string. The expression string may conta ...

  3. Basic Calculator II

    Implement a basic calculator to evaluate a simple expression string. The expression string contains ...

  4. Windows Universal 应用 – Tip Calculator

    声明 以下内容取材于 Bob Tabor 的课程<Windows Phone 8.1 Development for Absolute Beginners>,链接地址为:http://ww ...

  5. Calculator(1.5)

    Calculator(1.5) Github链接 ps.负数的处理未完成 解题过程中遇到的困难和解决 <stack>的使用: 认真研究了栈,基本上掌握了用法,与<queue>的 ...

  6. Calculator(1.0)

    Calculator(1.0) Github链接 解题过程中遇到的困难 对于c++中类和对象的使用不够明确,看了c++的视频教程学会了用类和对象来写程序. 不会使用<queue>,在网上查 ...

  7. 数据结构与算法(1)支线任务2——Basic Calculator

    题目:https://leetcode.com/problems/basic-calculator/ Implement a basic calculator to evaluate a simple ...

  8. Basic Calculator

    本博客介绍leetcode上的一道不难,但是比较经典的算法题. 题目如下: Implement a basic calculator to evaluate a simple expression s ...

  9. Matrix Calculator

    表达式分析+矩阵+计算器+寄存器=矩阵计算器 怎么想起来搞这个呢.. //刚看龙书兴致勃勃要搞表达式分析 这个寄存器比较简陋,26字母+4缓存,//字母不分大小写 当然,不只能算矩阵,还能算数= = ...

随机推荐

  1. GBDT算法原理深入解析

    GBDT算法原理深入解析 标签: 机器学习 集成学习 GBM GBDT XGBoost 梯度提升(Gradient boosting)是一种用于回归.分类和排序任务的机器学习技术,属于Boosting ...

  2. oracle之check约束小结

    一下是Ocp考试指导中,对于oracle约束的描述: The constraint types supported by the Oracle database are as follows:UNIQ ...

  3. NLP情感分析监督学习样本打标

    1). 情感打标 a). 全句 单句 标签 好吃是好吃 pos 真材实料 pos 不过感觉一人份的量就有点小贵 neg 点的是肥牛米线 neu b). 全文本 文本 标签 分量足,味道不错,味道也不错 ...

  4. Sql Server Job 简单使用

    http://www.cnblogs.com/zerocc/p/3400529.html(转载) use msdb EXEC sp_add_job @job_name =   'tk_bakdata' ...

  5. win7下 安装 Flask

    参考: http://my.oschina.net/935572630/blog/375758 一 环境版本: os: win7 x64 python: 2.7.10 x64 二 安装步骤: 由于fl ...

  6. spring JPA 动态查询

    没什么好说的,记住就行. 下面是在Service中的方法 Page<TStaff> staffs=dao.findAll(new Specification<TStaff>() ...

  7. 没想到cnblog也有月经贴,其实C#值不值钱不重要。

    呵呵,就不倚老卖老了,从basic走过来,一路经历vb,vf,delphi,C#,php,asp,html,js,css,太多太多的开发语言,包括面向对象编程思想,语义化页面结构等等,除了高级的编程技 ...

  8. w3svc服务启动 不了,错误 1068:依赖服务或组件无法启动

    win10系统,装了iis就是启动不了,报错误 1068:依赖服务或组件无法启动. 各种实验无法使用,最后如下方法解决 运行命令regedit,打开注册表编辑器,进入:HKEY_LOCAL_MACHI ...

  9. 怎样安装Ubuntu操作系统

    (转载自:http://jingyan.baidu.com/article/ff42efa9423991c19e22020d.html) 准备工作 1. 一台普通电脑(装没装操作系统无所谓),保证电脑 ...

  10. 【Python】【学习笔记】持续更新

    调用模块的两种方式: #方式1 from decimal import Decimal Decimal('1.00') #方式2 import decimal decimal.Decimal('1.0 ...