#include <stdio.h>
int a[20]={0}; //a为数值暂存区
char b[10]={0}; //b为运算符暂存区
void main(void)
{
int i,m;
printf("一元稀疏多项式简单计数器: a为数值,记得一定不要忘记=号\n");
printf("输入格式 a+a*a-a/a= \n");
scanf("%d%c%d",&a[0],&b[0],&a[1]);//接受第一个运算符与前两个数值
for(i=2;;i++)
{
if((b[i-2]=='+')||(b[i-2]=='-')||(b[i-2]=='*')||(b[i-2]=='/'))//判断运算符
{
if(b[i-2] == '*') //*符号处理
{
a[i-2]*=a[i-1];
i-=1;
}
if(b[i-2] == '/') // /符号处理
{
a[i-2]/=a[i-1];
i-=1;
}
}
else //运算符错误判断
{
printf("输入错误\n");
break;
}
scanf("%c",&b[i-1]); //除了第一个之外的运算符之外的所有运算符输入
if(b[i-1] == '=') //等于号的处理
{
for(m=0;m<=i-2;m++)
{
if(b[m] == '+') { // +法的处理
a[0]+=a[m+1];
}
if(b[m] == '-') { // -法的处理
a[0]-=a[m+1];
}
}
printf("%d\n",a[0]);
break;
}
else
{
scanf("%d",&a[i]);
}
}
}
结果演示: