问题补充:
用C语言编写一个简单的可以进行加减乘除运算混合运算的计算器要求:1.可以进行 + - * / 四则运算.2.可以进行混合运算.如 4+5*6=34只要能先乘除再加减就行,还要完整的程序,别只给一段,而且要能运行.
答案:
/* Note:Your choice is C IDE */
#include stdio.h
#include stdlib.h
#include ctype.h
int n=0;
char record[20];
float product();
float change();
float muli()
{\x09float summ;
\x09summ=product();
\x09while(record[n]==-||record[n]==+)
\x09{\x09\x09switch(record[n])
\x09\x09{
\x09\x09\x09case +:n++;summ+=product();break;
\x09\x09\x09case -:n++;summ-=product();break;
\x09\x09}
\x09}\x09return summ;
}float product()
{\x09float sump;
\x09sump=change();
\x09while(record[n]==*||record[n]==/)
\x09{\x09\x09switch(record[n])
\x09\x09{
\x09\x09\x09case *:n++;sump*=change();break;
\x09\x09\x09case /:n++;sump/=change();break;
\x09\x09}
\x09}\x09return sump;
}float change()
{\x09float sumc;
\x09char rec[20],i=0;
\x09if(record[n]==()
\x09{\x09\x09n++;
\x09\x09sumc=muli();
\x09}\x09if(record[n]==))
\x09 n++;
\x09 while(isdigit(record[n])||record[n]==.)
\x09 {\x09 \x09while(isdigit(record[n])||record[n]==.)
\x09 \x09\x09rec[i++]=record[n++];
\x09 \x09\x09rec[i]=\ ;
\x09 \x09\x09sumc=atof(rec);
\x09 }\x09 return sumc;\x09}void main(){\x09while(1)\x09{\x09n=0;\x09scanf(%s,record);\x09printf(%s=%g\n,record,muli());\x09} }这个是比较简单的.但是有点难理解.不过运行绝对正确.还支持括号.但是在这个程序里面我加没有出错处理.另一种方法是用栈写.这个好理解.但是麻烦.
用C语言编写一个简单的可以进行加减乘除运算混合运算的计算器要求:1.可以进行 + - * / 四则运