输入一行加减运算的字符串(少于80个字符),计算加减运算的结果
输入一行加减运算的字符串(少于80个字符),计算加减运算的结果输入输出示例:
10+52-28
y=34
我写的源程序是这样的,系统编译是没有问题的,但是求出来的结果不对,不知道哪里错了,麻烦看一下
#include<stdio.h>
#include<math.h>
#define N 80
void main()
{
int i,j,m=0,p=0,a[N],sum; //m为减号个数,p为加号个数
char num[N];
gets(num);
for(i=0,j=0;((num[i]>='0'&&num[i]<='9')||num[i]=='+'||num[i]=='-')&&num[i]!='\0';i++)//判断是否有其他字符
j++;
if(i=j)
{
for(i=0;num[i]!='\0';i++)
{
a[i]=(int)num[i]-48;
if(a[i]==-5)
p++;
if(a[i]==-3)
{
m++;
a[i+1]=-a[i+1];
}
if(a[i+1]!=-5&&a[i+1]!=-3&&a[i+1]!='\0')
{
if(a[i]!=-5&&a[i]!=-3)
a[i]*=10;
if(a[i-1]=-3&&i!=0)
a[i+1]=-a[i+1];
}
}
sum=p*5+3*m;
for(i=0;num[i]!='\0';i++)
sum+=num[i];
printf("y=%d\n",sum);
}
else
printf("Invalid input!\n");
}