一个简单的c语言编程求大神找一下错在哪儿

#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;

}

以上是我设计程序的源代码,是为了实现输入一串简单的二项表达式得出结果,然后我现在的问题就是运行的时候得不到预期结果,请大神们帮忙找一下错误所在,然后就是如果再继续优化,该从哪方面更改。
这个问题已经困扰我很久了,如果有大神愿意解惑,小弟不胜感激

查看全部
peng1874
peng1874
2017/07/26 09:41
  • c
  • 源代码
  • 编程
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

4个回复