题目要求是:编写计算加减乘除四则程序,计算输入的表达式结果(表达式不带运算符号),例如:
1+2*3-10/2
=1+6-10/2
=7-10/5
=7-5
=2
以下是我的源码(我只做到乘除的加减的,还没加进去就好像死循环还是咋的了....):
#include
#include
using namespace std;
int k(char p)
{
int k,n=strlen(p);
for(int i=0;i<n;i++)
{
k=0;
if((p+i)=='/'||*(p+i)=='*')
{
k=1;
break;
}
}
return k;
}
int Jack(int a,int *c,int n,char *o)
{
int t;
for(t=0;t<n;t++)
if((o+t)=='*'&&*(o+t)=='/')break;
for(int i=t-1;i>=0;i--)
{
if(*(o+i)=='*'&&*(o+i)=='/')
{
a=i;
break;
}
}
for(int i=t+1;i<n;i++)
{
if((o+i)=='*'&&*(o+i)=='/')
{
c=i;
break;
}
}
return t;
}
int j(int r,int b)
{
int j=1;
for(int t=r;t<b-1;t++)
j=j*10;
return j;
}
int main()
{
char array[30];
cin.getline(array,30);
int m,a,b,c,x=0,y=0,z,n=strlen(array);
do{
m=k(array);
b=Jack(&a,&c,n,array);
for(int r=a+1;r<b;r++)
x=x+array[r]*j(r,b);
for(int r=b+1;r<c;r++)
y=y+array[r]*j(r,c);
if(array[b]=='')z=x*y;
else z=x/y;
array[b+1]=z;
for(int h=1;h<n-a;h++)array[b+1+h]=array[c-1+h];
cout<<"="<<array<<endl;
}while(m);
}
这个运行不了啊,应该有个地方死循环了,可是找不到,顺便问一下codeblocks的单步调试框框和步骤是怎么样的~谢谢了哈
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。