编写一个计算器,加减乘除四则运算优先级相同.
目前计算什么的都正常,但是输入时候必须每个字符中间要加上空格,想问一下有什么方法可以使得在输入过程中不用加空格.
这个是目前的输入方式
while(scanf("%s",str),str[0] !='=')
{
if(str[0] == '+' || str[0] == '-' || str[0] == '*' || str[0] == '/')
{
a2[i]=str[0];
i++;
}
else{
a1[i]=atoi(str);
i++;
}
全部代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
double a1[100];
char a2[100]={0};
char str[100];
int i=0,j=0;
double sum=0;
while(scanf("%s",str),str[0] !='=')
{
if(str[0] == '+' || str[0] == '-' || str[0] == '*' || str[0] == '/')
{
a2[i]=str[0];
i++;
}
else{
a1[i]=atoi(str);
i++;
}
}
for(j=0;j<i;j++)
{
if(a2[j]=='+')
a1[j+1]=a1[j-1]+a1[j+1];
if(a2[j]=='-')
a1[j+1]=a1[j-1]-a1[j+1];
if(a2[j]=='*')
a1[j+1]=a1[j-1]*a1[j+1];
if(a2[j]=='/')
a1[j+1]=a1[j-1]/a1[j+1];
}
sum=a1[j-1];
printf("%.2lf",sum);
}