1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > C语言实现加减乘除混合运算计算器

C语言实现加减乘除混合运算计算器

时间:2022-01-17 00:24:58

相关推荐

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;}

运行结果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。