c语言 简易计算器

应度友邀请,用c写了个简易的命令行计算器,其功能大致如下:

设计简单的计算器,允许用户输入简单表达式(一元运算和二元运算表达式,以=结尾),输出计算结果,并等待用户继续输入,直到用户输入字符q。
输入输出举例 :
输入:10^2=    // 求幂运算,指数必须整数
输出:100
输入:5!=          //阶乘运算
输出:120
输入:9$=          //判断是否平方数
输出:YES
输入:25+4+2= //累加,运算数个数不限
输出:31
输入:3&61&5&9=  //求最大值,运算数个数不限
输出:61
输入:35%          //奇数分解运算,将该数分解为3个素数
输出:35=3+3+29  
输入:3+6%8=      //不允许出现以上运算法则之外的表达式
输出:运算符非法,+只支持连用!
输入:10%=
输出:运算数非法,%只支持奇数!
输入:q
输出:谢谢使用!

#include 
#include
int isprime(int n){ //是否素数
    int i;
    for(i=2;i='0'&&c<='9'){
            if(newline)res=res*10+c-'0';    
            else m=m*10+c-'0'; 
        }else if('%'==c||'$'==c||'!'==c){/ 
            if(newline){                        
                if(0==res%2&&'%'==c)err=c;                            
                else  status=c;                                 
                newline=0;
                first=c;
            }else err=first;            
        } else if('+'==c||'-'==c||'*'==c||'/'==c||'^'==c){
            if(newline){
                newline=0;
                first=c;
            }else if(first!=c){
                err=first;
            }else{
                res=jisuan(res,c,m);
                m=0;
            }
        }else if('='==c){
            if(!err&&!status)
                res=jisuan(res,first,m);
        }else if('\n'==c){
            if(err) ptferr(err);
            else ptfres(status,res);
            newline=1;
            status=res=m=0;
        }else if('q'!=c){
            err=c;
        }  
    }
    printf("谢谢使用!\n");                          
    return 0;
}


你可能感兴趣的:(c语言,c语言,简易计算器)