用c语言写一个简易计算器

发布时间:2019-08-04 19:53:33

这是我写了一半的,不知道哪里错了

#include <stdio.h>

int zm(char q,int w,int e,int r,int t)

{

printf("输入式子\n",w);

scanf("%d%c%d",&w,&q,&e);

do

{

    switch (q)

    {

    case '+':

  {

  r=w+e;

  printf("%d\n",r);

  }

  break;

    case'-':

     {

       r=w-e;

             printf("%d\n",r);

     }

     break;

    case'*':

  {

  r=w*e;

  printf("%d\n",r);

  }

  break;

    case'/':

  {

  if(w=0)

  {

  printf("除数不能为零!!\n");

  break;

  }

  else

  {

  r=w/e;

  printf("%d\n",r);

  }

  }

       default:

{

      printf("错误!!\n");

      break;

}

    }

printf("继续请扣1\n退出请扣2\n");

scanf("%d",t);

}while(t=2);

int zm=r;

return zm;

}

int main()

{

char q='+';

int w=0,e=0,r=0,t=1;

q=zm(q,w,e,r,t);

printf("结果为%d",q);

return 0;

}

推荐回答

还没有选出推荐答案,请稍候访问或查看其他回答!

其他回答

* 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(){float summ;summ=product();while(record[n]=='-'||record[n]=='+'){switch(record[n]){case '+':n++;summ+=product();break;case '-':n++;summ-=product();break;}}return summ;}float product(){float sump;sump=change();while(record[n]=='*'||record[n]=='/'){switch(record[n]){case '*':n++;sump*=change();break;case '/':n++;sump/=change();break;}}return sump;}float change(){float sumc;char rec[20],i=0;if(record[n]=='('){n++;sumc=muli();}if(record[n]==')')n++;while(isdigit(record[n])||record[n]=='.'){while(isdigit(record[n])||record[n]=='.')rec[i++]=record[n++];rec[i]='\0';sumc=atof(rec);}return sumc;}void main(){while(1){n=0;scanf("%s",record);printf("%s=%g\n",record,muli());}}这个是比较简单的。。。但是有点难理解。。。不过运行绝对正确。。还支持括号。。。但是在这个程序里面我加没有出错处理。。。另一种方法是用栈写。。。这个好理解。。但是麻烦。。。

以上问题属网友观点,不代表本站立场,仅供参考!