C语言 四则运算问题

来源:百度知道 编辑:UC知道 时间:2024/06/20 02:15:24
输入一个算式(没有空格),遇‘=’号则输出结果,算式按从左到右的顺序运算,如输入 1+2*10/2= 后,输出10
式子打错了,应该是 1+2*10-10/2=

这也太简单了

我做了~~马上给你
是要程序还是算法~
你要的是不考虑运算符优先级的吧
这是程序
#include<stdio.h>
#include<math.h>
#include<ctype.h>
#include<string.h>
#define size 100
int operate(int a,char r,int b)//运算函数
{

switch(r)
{
case'+':return a+b;break;
case'-':return a-b;break;
case'*':return a*b;break;
case'/':return a/b;break;
//default:printf("error");
};
}
int transform(char *s,int *i)//字符型数据转化为整形数据
{
int a[10],j=0,sum=0,n;
for(;isdigit(s[*i]);(*i)++)
a[j++]=s[*i]-'0';
n=j;
for(j=0;j<n;j++)
sum=sum*10+a[j];
return sum;
}

main()
{
int n1,n2,i=0;
char s[size],ch;
printf("\t\t请输入表达式,并以=结束:\n");
scanf("%s",s);
n1=transform(s,&i);
ch=s[i++];
while(s[i]!='='&&s[i]!=&#