设为首页 加入收藏

TOP

一个用C语言实现的科学计算器(二)
2016-10-09 14:31:23 】 浏览:903
Tags:一个 语言 实现 科学 计算器
pd); break; case 'c': *opd=cos(*opd); break; case 't': *opd=tan(*opd); break; case 'a'+'s': if(*opd<-1||*opd>1) { printf("Beyond asin()!"); return 0; } else *opd=asin(*opd); break; case 'a'+'c': if(*opd<-1||*opd>1) { printf("Beyond acos()!"); return 0; } else *opd=acos(*opd); break; case 'a'+'t': if(*opd>-3.141592654/2&&*opd<3.141592654/2) *opd=atan(*opd); else { printf("Beyond atan()!"); return 0; } break; case 'n': if(*opd>0) *opd=log(*opd); else { printf("Beyond ln()!"); return 0; } break; case 'g': if(*opd>0) *opd=log10(*opd); else { printf("Beyond lg()!"); return 0; } break; } return 1; } /*功能:双目运算 */ int dclt(int opr,double *opd1,double opd2) { switch(opr) { case '+': *opd1 = *opd1+opd2;break; case '-': *opd1 = *opd1-opd2;break; case '*': *opd1 = (*opd1)*opd2;break; case '/': if(opd2>pow(0.1,8)||opd2<0-pow(0.1,8)) *opd1 = (*opd1)/opd2; else { printf("Error 1/0 !"); return 0; } break; case '^': *opd1 = pow(*opd1,opd2);break; } return 1; } /*功能:判断优先级 */ int prid(int c) { switch(c) { case '+': case '-': case '=': case ')': return 1;break; case '*': case '/': return 2;break; case '^': return 3;break; default :return 0;break; } } int main() { int c=0; while(1) { Node nodes[NODE_MAX]={0}; double r=0.0; //清空括号栈 bb=0; //InitStack(&brackets); printf("Enter: "); //输入 if(!input(nodes)) { printf("Input Error!"); continue; } //计算 if(calculate(nodes,&r)) { if(bb) { printf("Bracket does not match!"); continue; } if(floor(r)==r) printf("%d",(int)r); else printf("%.4f",r); } c=getchar(); if(c=='q') //退出 break; else if(c=='c') //清屏 system("clear"); if(c!='\n') getchar(); } printf("Quit...\n"); return 0; }
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C语言基础:005 下一篇一起talk C栗子吧(第一百八十四..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目