#include
#include
#include
#define M 1000
int main()
{
char s[M],h;
int i,k,a=0,b=0,c;
gets(s);
for(i=0;i<M;i++)
{
if(s[i]=='+'||s[i]=='-'||s[i]=='*'||s[i]=='/')
{
h=s[i];
k=i;
break;
}
}
for(i=0;i<k;i++)
{
a+=s[i]*(pow(10,(double(k-i-1))));
}
for(i=k+1;i<strlen(s);i++)
{
b+=s[i]*(pow(10,double(strlen(s)-k-i-1)));
if(s[i]=='\0')break;
}
switch(h)
{
case '+':
c=a+b;
break;
case '-':
c=a-b;
break;
case '*':
c=a*b;
break;
case '/':
c=a/b;
break;
}
printf("%d\n",c);
return 0;
}
以上是我设计程序的源代码,是为了实现输入一串简单的二项表达式得出结果,然后我现在的问题就是运行的时候得不到预期结果,请大神们帮忙找一下错误所在,然后就是如果再继续优化,该从哪方面更改。
这个问题已经困扰我很久了,如果有大神愿意解惑,小弟不胜感激