C語言如何實現(xiàn)計算器簡單混合運算功能
更新時間:2024年07月01日 11:54:29 作者:Loongnoy
這篇文章主要給大家介紹了關(guān)于C語言如何實現(xiàn)計算器簡單混合運算功能的相關(guān)資料,這個計算器程序可以執(zhí)行基本的數(shù)學運算,例如加法、減法、乘法和除法,需要的朋友可以參考下
簡易計算器
把輸入的字符串數(shù)字和符號分離
#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];//數(shù)字字符串 double num[100];//數(shù)字 double res=0;//結(jié)果 gets(str); for(i=0;str[i]!='\0';i++) { if(str[i]>='0'&&str[i]<='9'||str[i]=='.') { aq[j++]=str[i]; }//將輸入的字符串中的數(shù)字提取出來 else { num[l++]=atof(aq);//數(shù)字存入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];//數(shù)字遞進 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];//數(shù)字字符串 double num[100];//數(shù)字 double res=0;//結(jié)果 gets(str); for(i=0;str[i]!='\0';i++) { if(str[i]>='0'&&str[i]<='9'||str[i]=='.') { aq[j++]=str[i]; }//將輸入的字符串中的數(shù)字提取出來 else { num[l++]=atof(aq);//數(shù)字存入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];//數(shù)字遞進 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; }
運行結(jié)果
總結(jié)
到此這篇關(guān)于C語言如何實現(xiàn)計算器簡單混合運算功能的文章就介紹到這了,更多相關(guān)C語言計算器混合運算內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
畢業(yè)論文-中小企業(yè)辦公自動化系統(tǒng)的開發(fā)
畢業(yè)論文-中小企業(yè)辦公自動化系統(tǒng)的開發(fā)...2007-03-03畢業(yè)論文-客戶關(guān)系管理與數(shù)據(jù)挖掘技術(shù)綜述
畢業(yè)論文-客戶關(guān)系管理與數(shù)據(jù)挖掘技術(shù)綜述...2007-03-03畢業(yè)論文-電子商務罪在何處?--淺談有關(guān)電子商務認識的幾個誤區(qū)
畢業(yè)論文-電子商務罪在何處?--淺談有關(guān)電子商務認識的幾個誤區(qū)...2007-03-03