用C语言写简单的四则运算(没有栈没有指针,因为还没学到)
在这平台都是大佬发的指针和栈的方法,我都没法借鉴,自己写好了就发了一下
四个数的加减乘除,不带0和()
大一新生写的作业可能有点小毛病,我在Visual C++ 6.0可以运行,其他软件可能要小改
想要加0或者()运算,可以自行在条件里加
全是if,switch,看着比较麻烦,但是知道原理就很清晰了
#includeint main() { float a, b, c, d, e; //设abcd为计算数,e为计算结果 float j=0, k=0, l=0; //设jkl为乘除法运算中间数 float i=0,o=0,p=0; //设iop为运算中间数 char x, y, z; //设xyz为计算运算符 printf("欢迎进入简单四则运算系统n"); printf("现在请你输入例如1+1+1+1这样的式子n"); scanf("%f%c%f%c%f%c%fn", &a, &x, &b, &y, &c, &z, &d); if(y=='*') k=b*c; else if(y=='/') k=b/c; else k=0; if(x=='*') //这些是为了让电脑知道x,y,z的符号,得到中间值,定下后面的运算条件 j=a*b; else if(x=='/') j=a/b; else j=0; if(z=='*') l=c*d; else if(z=='/') l=c/d; else l=0; if(k!=0&&j!=0&&l!=0) { switch(y) { case '*': e=j*l;break; //x,y,z全为*号 case '/': e=j/l;break; } } if(k==0&&j==0&&l==0&&x=='+') { switch(y) { case '+': o=(a+b)+c;break; // case '-': o=(a+b)-c;break; // } // } // else if(k==0&&j==0&&l==0&&x=='-') //x,y,z全为+/- { // switch(y) // { // case '+': o=a-b+c;break; // case '-': o=a-b-c;break; // } } if(o!=0) { switch(z) { case '+': e=o+d;break; case '-': e=o-d;break; } } if(l==0&&j!=0) { switch(y) { case '+': i=j+c;break; case '-': i=j-c;break; //x为*,/; z为+,-; y待定 case '*': i=j*c;break; case '/': i=j/c;break; } } else if(k!=0&&l==0) { switch(x) { case '+': i=a+k;break; case '-': i=a-k;break; //y为*,/; z为+,-; x待定 case '*': i=a*k;break; case '/': i=a/k;break; } } else; if(i!=0) { switch(z) { case '+': e=i+d;break; case '-': e=i-d;break; } } if(l!=0&&j!=0&&k==0) { switch(y) { case '+': e=j+l;break; //只有y为+,- case '-': e=j-l;break; } } else if(j==0&&l!=0) { switch(y) { case '+': p=d+l;break; case '-': p=d-l;break; //z为*,/; x为+,-; y待定 case '*': p=d*l;break; case '/': p=d/l;break; } } else; if(p!=0) { switch(x) { case '+': e=a+p;break; case '-': e=a-p;break; } } if(a==0||b==0||c==0||d==0) printf("错误,本系统不允许数为0n"); else printf("%.2f%c%.2f%c%.2f%c%.2f=%.2fn",a,x,b,y,c,z,d,e); return 0; }



