网站大量收购闲置独家精品文档,联系QQ:2885784924

加减四则运算.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
加减四则运算

问题描述: 输入一个只包含个位数字的简单四则运算表达式字符串,计算该表达式的值 注: 3.1、表达式只含 +, -, *, / 四则运算符,不含括号 3.2、表达式数值只包含个位整数(0-9),且不会出现0作为除数的情况 3.3、要考虑加减乘除按通常四则运算规定的计算优先级 3.4、除法用整数除法,即仅保留除法运算结果的整数部分。比如8/3=2。输入表达式保证无0作为除数情况发生 3.5、输入字符串一定是符合题意合法的表达式,其中只包括数字字符和四则运算符字符,除此之外不含其它任何字符,不会出现计算溢出情况 要求实现函数: #includestdio.h #includestring.h #includestdlib.h int fun(char *a,int len) //字符数组和字符数组的长度 { int num[20]; char str[20]; int k1=0,k2=0; int data=0; for(int i=0;ilen;i++) //主要运算 { if(a[i]=0a[i]=9) num[k1++]=a[i]-0; if(a[i]==-||a[i]==+) str[k2++]=a[i]; if(a[i]==*) {num[k1-1]=num[k1-1]*(a[i+1]-0);i++;}//遇见*,就运算,结果保存在数组中 if(a[i]==/) { num[k1-1]=num[k1-1]/(a[i+1]-0);i++;} } int temp=num[0]; int j=0; //两个数组只剩下数组和加减运算符 while(jk2){ //顺序运算 if(str[j]==-) temp=temp-num[j+1]; else if(str[j]=+) temp=temp+num[j+1]; j++; } return temp; } int main() { char *a; int k,len; a=(char*)malloc(sizeof(char)); gets(a); len=strlen(a); k=fun(a,len); printf(%d\n,k); return 0; } 三、题目描述(50分): 通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。 输入字符串的格式为:“操作数1 运算符 操作数2”,“操作数”与“运算符”之间以一个空格隔开。 补充说明: 1、操作数为正整数,不需要考虑计算结果溢出的情况。 2、若输入算式格式错误,输出结果为“0”。 要求实现函数: void arithmetic(const char *pInputStr, long lInputLen, char *pOutputStr); 【输入】 pInputStr: 输入字符串 lInputLen: 输入字符串长度 【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长; 【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出 示例 输入:“4 + 7” 输出:“11” 输入:“4 - 7” 输出:“-3” 输入:“9 ++ 7” 输出:“0” 注:格式错误 [cpp] view plain #includestdio.h #includestring.h #includestdlib.h #define MAXCHAR 256 void arithmetic(const char* pInputStr , long lInputLen , char* pOutputStr) { int i , j , num1 , num2 , result , num_space; char buffer[4]; bool add , sub; add = sub = false; for(i = 0 , num_space = 0 ; i lInputLen ; ++i) { if(pInputStr[i] == ) ++num_space; } if(2 != num_space) //空格数非法 { pOutputStr[0] = 0; pOutputStr[1] = \0;

文档评论(0)

juhui05 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档