计算器版本一优化,v1.1


    在这里插入代码片

运用while(1)死循环;
全局变量;

 #include<stdio.h>
    #include<string.h>
    char a[13];
    int i=0;
    float x;
    //==============================
    float t(float x,int y,char c)
    {
        switch(c)
        {
            case'+':return x+y;
            case'-':return x-y;
            case'*':return x*y;
            case'/':return x/y;
        }
    }
    //==============================
    int isnum()
    {
        if(a[i]>='0'&&a[i]<='9')
            return 1;
        else
            return 0;
        
    }
    //==============================
    char isysf()
    {
        if(a[i]=='+'||a[i]=='-'||a[i]=='*'||a[i]=='/')
            return 1;
        else
            return 0;
        
    }
    //==============================
    int hfx()
    {
        for(i=0;i<=strlen(a)-1;i+=2)
        {
            if(isnum())
                continue;
            else
                return 0;
        }
        for(i=1;i<=strlen(a)-2;i+=2)
        {
            if(isysf())
                continue;
            else
                return 0;
        }
       
        if(a[strlen(a)-1]>='0'&&a[strlen(a)-1]<='9')
            return 1;
        return 0;
    }
    //================================
    int main()
    {
        int y;
        char  p;
        while(1)
        {
            gets(a);
            if(hfx())
                break;
            printf("输入错误,请重新输入\n");
        }
    	x=a[0]-'0';
        for (i=1; a[i]!='\0';i++)
        {
            p=a[i];
            y=a[i+1]-'0';
            x=t(x,y,p);
            i++;
        }
        printf("%.2f\n",x);
        return 0;
        }

猜你喜欢

转载自blog.csdn.net/weixin_44366851/article/details/88582767