C語(yǔ)言如何實(shí)現(xiàn)計(jì)算器簡(jiǎn)單混合運(yùn)算功能
簡(jiǎn)易計(jì)算器
把輸入的字符串?dāng)?shù)字和符號(hào)分離
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int i,j=0,k=0,l=0;
char op[100];//符號(hào)字符串
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];//符號(hào)存入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");
再進(jìn)行混合運(yùn)算
for(i=0;op[i]!='\0';i++)
{
if(op[i]=='*')
{
for(j=i;op[j]!='\0';j++)
op[j]=op[j+1];//符號(hào)遞進(jìn)
num[i]=num[i]*num[i+1];
for(j=i+1;num[j]!='\0';j++)
num[j]=num[j+1];//數(shù)字遞進(jìn)
i--; //符號(hào)前進(jìn)i要退一
}//乘法運(yùn)算
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--;
}//除法運(yùn)算
}
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];//進(jìn)行加減運(yùn)算
}
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];//符號(hào)字符串
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];//符號(hào)存入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];//符號(hào)遞進(jìn)
num[i]=num[i]*num[i+1];
for(j=i+1;num[j]!='\0';j++)
num[j]=num[j+1];//數(shù)字遞進(jìn)
i--; //符號(hào)前進(jìn)i要退一
}//乘法運(yùn)算
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--;
}//除法運(yùn)算
}
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];//進(jìn)行加減運(yùn)算
}
printf("%.2lf",res);
return 0;
} 運(yùn)行結(jié)果

總結(jié)
到此這篇關(guān)于C語(yǔ)言如何實(shí)現(xiàn)計(jì)算器簡(jiǎn)單混合運(yùn)算功能的文章就介紹到這了,更多相關(guān)C語(yǔ)言計(jì)算器混合運(yùn)算內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之簡(jiǎn)易計(jì)算器
- C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單計(jì)算器功能(1)
- C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單計(jì)算器程序
- C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器
- C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單計(jì)算器
- C語(yǔ)言實(shí)現(xiàn)計(jì)算器的兩種方法
- C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易計(jì)算器功能
- 用C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器功能
相關(guān)文章
畢業(yè)論文-計(jì)算機(jī)軟件知識(shí)產(chǎn)權(quán)保護(hù)所面臨的挑戰(zhàn)及對(duì)策
畢業(yè)論文-計(jì)算機(jī)軟件知識(shí)產(chǎn)權(quán)保護(hù)所面臨的挑戰(zhàn)及對(duì)策...2007-03-03
畢業(yè)論文-電子商務(wù)罪在何處?--淺談?dòng)嘘P(guān)電子商務(wù)認(rèn)識(shí)的幾個(gè)誤區(qū)
畢業(yè)論文-電子商務(wù)罪在何處?--淺談?dòng)嘘P(guān)電子商務(wù)認(rèn)識(shí)的幾個(gè)誤區(qū)...2007-03-03
畢業(yè)論文-計(jì)算機(jī)論文注意事項(xiàng)
畢業(yè)論文-計(jì)算機(jī)論文注意事項(xiàng)...2007-03-03
畢業(yè)論文-客戶關(guān)系管理與數(shù)據(jù)挖掘技術(shù)綜述
畢業(yè)論文-客戶關(guān)系管理與數(shù)據(jù)挖掘技術(shù)綜述...2007-03-03
畢業(yè)論文-中小企業(yè)辦公自動(dòng)化系統(tǒng)的開發(fā)
畢業(yè)論文-中小企業(yè)辦公自動(dòng)化系統(tǒng)的開發(fā)...2007-03-03
畢業(yè)論文-如何預(yù)防計(jì)算機(jī)的網(wǎng)絡(luò)病毒
畢業(yè)論文-如何預(yù)防計(jì)算機(jī)的網(wǎng)絡(luò)病毒...2007-03-03

