C语言如何实现计算器简单混合运算功能
作者:Loongnoy
这篇文章主要给大家介绍了关于C语言如何实现计算器简单混合运算功能的相关资料,这个计算器程序可以执行基本的数学运算,例如加法、减法、乘法和除法,需要的朋友可以参考下
简易计算器
把输入的字符串数字和符号分离
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { int i,j=0,k=0,l=0; char op[100];//符号字符串 char str[100];//所输入的字符串 char aq[100];//数字字符串 double num[100];//数字 double res=0;//结果 gets(str); for(i=0;str[i]!='\0';i++) { if(str[i]>='0'&&str[i]<='9'||str[i]=='.') { aq[j++]=str[i]; }//将输入的字符串中的数字提取出来 else { num[l++]=atof(aq);//数字存入double类型 memset(aq,0,sizeof(aq));//清空aq op[k++]=str[i];//符号存入op j=0; } } num[l++]=atof(aq); op[k]='\0'; puts(op); for(i=0;num[i]!='\0';i++) printf("%.2lf\t",num[i]); printf("\n");
再进行混合运算
for(i=0;op[i]!='\0';i++) { if(op[i]=='*') { for(j=i;op[j]!='\0';j++) op[j]=op[j+1];//符号递进 num[i]=num[i]*num[i+1]; for(j=i+1;num[j]!='\0';j++) num[j]=num[j+1];//数字递进 i--; //符号前进i要退一 }//乘法运算 if(op[i]=='/') { for(j=i;op[j]!='\0';j++) op[j]=op[j+1]; num[i]=num[i]/num[i+1]; for(j=i+1;num[j]!='\0';j++) num[j]=num[j+1]; i--; }//除法运算 } res=num[0]; for(i=0;op[i]!='\0';i++) { if(op[i]=='+') res=res+num[i+1]; if(op[i]=='-') res=res-num[i+1];//进行加减运算 } printf("%.2lf",res); return 0; }
完整代码
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { int i,j=0,k=0,l=0; char op[100];//符号字符串 char str[100];//所输入的字符串 char aq[100];//数字字符串 double num[100];//数字 double res=0;//结果 gets(str); for(i=0;str[i]!='\0';i++) { if(str[i]>='0'&&str[i]<='9'||str[i]=='.') { aq[j++]=str[i]; }//将输入的字符串中的数字提取出来 else { num[l++]=atof(aq);//数字存入double类型 memset(aq,0,sizeof(aq));//清空aq op[k++]=str[i];//符号存入op j=0; } } num[l++]=atof(aq); op[k]='\0'; puts(op); for(i=0;num[i]!='\0';i++) printf("%.2lf\t",num[i]); printf("\n"); for(i=0;op[i]!='\0';i++) { if(op[i]=='*') { for(j=i;op[j]!='\0';j++) op[j]=op[j+1];//符号递进 num[i]=num[i]*num[i+1]; for(j=i+1;num[j]!='\0';j++) num[j]=num[j+1];//数字递进 i--; //符号前进i要退一 }//乘法运算 if(op[i]=='/') { for(j=i;op[j]!='\0';j++) op[j]=op[j+1]; num[i]=num[i]/num[i+1]; for(j=i+1;num[j]!='\0';j++) num[j]=num[j+1]; i--; }//除法运算 } res=num[0]; for(i=0;op[i]!='\0';i++) { if(op[i]=='+') res=res+num[i+1]; if(op[i]=='-') res=res-num[i+1];//进行加减运算 } printf("%.2lf",res); return 0; }
运行结果
总结
到此这篇关于C语言如何实现计算器简单混合运算功能的文章就介绍到这了,更多相关C语言计算器混合运算内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!