<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 195, comments - 34, trackbacks - 0, articles - 1

    C語言編一個簡單的計算器

    Posted on 2009-10-30 00:36 小強摩羯座 閱讀(268) 評論(0)  編輯  收藏 所屬分類: 算法編程
    #include  <stdio.h>
    int add(int x,int y)  {return x+y;}
    int sub(int x,int y)  {return x-y;}
    int mul(int x,int y)  {return x*y;}
    int div(int x,int y)  {return x/y;}
    int (*func[])()={add,sub,mul,div};
    int num,curch;
    char chtbl[]="+-*/()=";
    char corch[]="+-*/()=0123456789";
    int getach()  {
        int i;
        while(1)  {
            curch=getchar();
            if(curch==EOF)  return -1;
            for(i=0;corch[i]&&curch!=corch[i];i++);
            if(i<strlen(corch))  break;
        }
        return curch;
    }

    int getid()  {
        int i;
        if(curch>='0'&&curch<='9')  {
            for(num=0;curch>='0'&&curch<='9';getach())    num=10*num+curch-'0';
            return -1;
        }
        else  {
            for(i=0;chtbl[i];i++) if(chtbl[i]==curch)  break;
                if(i<=5)  getach();
                return i;
        }
    }

    int cal()  {
        int x1,x2,x3,op1,op2,i;
        i=getid();
        if(i==4)    x1=cal();    else  x1=num;
        op1=getid();
        if(op1>=5)  return x1;
        i=getid();
        if(i==4)  x2=cal();    else  x2=num;
        op2=getid();
        while(op2<=4)  {
            i=getid();
            if(i==4)  x3=cal();  else  x3=num;
            if((op1/2==0)&&(op2/2==1))    x2=(*func[op2])(x2,x3);
            else  {
                x1=(*func[op1])(x1,x2);
                x2=x3;
                op1=op2;
            }
            op2=getid();
        }
        return (*func[op1])(x1,x2);
    }

    void main(void)  {
        int value;
        printf("Please input an expression:\n");
        getach();
        while(curch!='=')  {
            value=cal();
            printf("The result is:%d\n",value);
            printf("Please input an expression:\n");
            getach();
        }
    }


    主站蜘蛛池模板: 日本亚洲免费无线码| 免费无码又爽又刺激高潮视频 | 色www免费视频| 亚洲人成7777影视在线观看| 亚洲精品二三区伊人久久| 亚洲精品精华液一区二区| 亚洲AV综合永久无码精品天堂| 香蕉97碰碰视频免费| a级毛片高清免费视频就| 午夜福利不卡片在线播放免费| 日韩伦理片电影在线免费观看| 久久精品国产亚洲7777| 精品亚洲aⅴ在线观看| 国产成人亚洲精品电影| 一级毛片不卡片免费观看| 日本免费电影一区| 亚洲一区二区三区电影| 免费一级毛片在线播放放视频| 97青青草原国产免费观看| 亚洲精品尤物yw在线影院| 亚洲偷偷自拍高清| 久久一区二区三区免费播放| 亚洲精品高清在线| 亚洲性无码一区二区三区| 16女性下面无遮挡免费| 亚洲永久无码3D动漫一区| 亚洲国产成人精品无码区二本| 99精品热线在线观看免费视频| 又粗又硬又大又爽免费视频播放| 亚洲av无码一区二区三区观看| 在线免费观看h片| 久久青青草原亚洲av无码| 国产亚洲精品成人久久网站| 一二三四影视在线看片免费| 久久久久久亚洲Av无码精品专口| 青青草原1769久久免费播放| 久久亚洲国产成人影院网站| 国产精品九九久久免费视频| 亚洲伊人成无码综合网 | 亚洲精品无码mⅴ在线观看| 好先生在线观看免费播放|