/*

通过键盘输入100以内的正整数的加、减法

运算式,请编写一个程序输出运算结果字符串。

输入字符串的格式为:“操作数1 运算符 操作数2”

,“操作数“与”运算符”之间以一个空格隔开。

补充说明:

1.操作数为正整数,不需要考虑结果溢出的情况。

2.若输入算式格式错误,输出结果为“0”。

*/

/*

思路:

1.先判断该运算式合法没有;

2.在把字符型的字符串转化成整形

3.整形做加减运算

*/

#include

#include

#include

//字符串转化成整形方法

int strToint(char *str)

{

int num = 0, len = 0, i = 0, j = 0;

len = strlen(str);

if(len == 0)

{

return NULL;

}else{

for(j = len, i = 0; j >= 1; j--,i++)

{

num += (*(str+i) - 48) * (int)(pow(10,j - 1));

}

}

return num;

}

void arithmetic(const char *pInputStr,long IInputLen,char *pOutputStr)

{

bool b = false;

char ch[3][4];

char c1 = '\0', c2 = '\0';

int i= 0,j = 0, f = 0, s = 0;

int num = 0, num1 = 0,num2 = 0;

//判断格式是否正确

for(i = 0; i < IInputLen; i++)

{

c1 = *(pInputStr + i);

c2 = *(pInputStr + i + 1);

if((c1 == '+' || c1 == '-') && (c2 == '+' || c2 == '-'))

{

b = true;

break;

}

}

if(b)//格式不正确输出0

{

printf("%d\n",num);

return;

}

//把运算数和运算符号分解出来

for(j = 0; j < IInputLen; j++)

{

if(*(pInputStr + j) != ' '){

ch[f][s++] = *(pInputStr + j);

}else{

ch[f][s] = '\0';

f++;

s = 0;

}

}

ch[f][s] = '\0';

//

int num1Len = strlen(ch[0]);

int num2Len = strlen(ch[2]);

//字符型转化成整形

num1 = strToint(ch[0]);

num2 = strToint(ch[2]);

//运算

if(ch[1][0] == '+')

{

num = num1 + num2;

}else if(ch[1][0] == '-'){

num = num1 - num2;

}

printf("%d\n",num);

}

void main()

{

char *p = NULL;

arithmetic("11 + 10",7,p);

}

c语言字母可以加减吗,C语言算式加减法运算相关推荐

  1. Python:随机生成多个两位数加减混合运算计算式

    问题背景 随机自动生成多个的两位数加减混合运算题. 例如:32+48-46=? 77-33+84=? 要求: 1.三个两位数加减混合运算. 2.三个两位数都是随机生成. 3.加减符号随机生成. 4.计 ...

  2. c语言实现补码加减,C语言计算器含二进制数加减原反补码(自己的期末作业)

    用C++6.0编写的计算器,内含整数小数加减乘除.二进制数组加减及求原码补码反码! #include #include int main() { void top(); void no1(),no2( ...

  3. 矩阵的加减乘c语言程序,C语言实现的矩阵加减乘法运算系统

    C语言实现的矩阵加减乘法运算系统 /*本矩阵运算系统可以完成矩阵的加.减.乘法,但是只限于方阵*/ #include<stdio.h> #include<math.h> /*- ...

  4. 数据结构(C语言)多项式加减

    这是大二刚开始数据结构的平时作业,上次随便发了,没来得及写标题和内容.题目要求用链表来实现多项式的加减,其实就是设置一个两个指针进行遍历,在代码段里有一些注解,要是有不太清楚的地方可以在下面留言或是私 ...

  5. c语言实现补码加减,C语言实现用位移运算符进行加减乘…

    最近,在百度知道上回答问题,然后看见有的人问如何用位移运算符去进行加减乘除运算,于是巩固今天就在这总结一下. 先讲讲总体思路: 加法运算:将一个整数用二进制表示,其加法运算就是:相异(^)时,本位为1 ...

  6. C语言算小数加减,C语言带小数加减乘除.doc

    C语言带小数加减乘除 /*Desgined by doBell-ConG*/ /*Function:simply add, subtract, multiply and divide*/ #inclu ...

  7. C语言double数据加减,double类型数据的加减乘除

    import java.math.BigDecimal; /** * 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 确的浮点数运算,包括加减乘除和四舍五入. */ public ...

  8. c语言大数的加减运算,求用C编个大数加减法运算程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 只写过加法的,杭电的A + B Problem (II)(AC): #include #include #include #define N 3000 i ...

  9. c语言 字母小游戏,详细讲解C语言单机小游戏——打字母游戏

    要用C语言编写一个单机小游戏,首先得安装一个图形库.在这里我用的是EasyX 图形库,EasyX 是针对 C++ 的图形库,可以帮助 C++语言初学者快速上手图形和游戏编程. 比如,可以用 VC + ...

最新文章

  1. Python九十天学习框架,从1到90,从0基础到IQ100
  2. 【转】IE浏览器快捷键大全
  3. 2018年11月12日
  4. Java StringBuilder codePointAt()方法与示例
  5. [html] 一般习惯把js写在</body>前,但有例外的情况吗?说说看
  6. 记一次,jvm 内存溢出
  7. python多进程管道通信(精)
  8. C#图片处理之:Gamma校正
  9. MySQL不能使用/tmp
  10. 新手菜鸟防***必备知识
  11. ImageAI:几行代码跑深度学习
  12. Tomcat配置指定JDK
  13. 用好工具,在团队协作中运筹帷幄
  14. office中导入mathtype出现MathPage.wll未找到错误
  15. Linux Windows 的Tensorflow 配置: Nvidia 老显卡运算能力低于3.0
  16. MFC界面设计——AUDK
  17. kotlin 仿照setOnclickListener写法
  18. linux rm 提示权限不足
  19. 利用计算机课堂导入的好处,多媒体教学的好处
  20. Go Modules依赖包管理与Go Modules实战

热门文章

  1. 基于Riffa架构的PCIEDMA测试分析
  2. deepdriveforGTA5之一 安装运行deepdrive
  3. linux 开机自动登录i3wm
  4. Halcon图像处理拉开对比度
  5. MRO采购和普通采购哪个好
  6. DQUERY - D-query 普通莫队
  7. 推荐30款开源项目管理软件
  8. 【Axure视频教程】中继器表格——分页显示
  9. 思科ipsec配置及trouble shooting详解
  10. Android插件化开发指南——Hook技术(二)