c语言编写四则运算Word文档下载推荐.docx

上传人:b****5 文档编号:17450229 上传时间:2022-12-01 格式:DOCX 页数:10 大小:15.88KB
下载 相关 举报
c语言编写四则运算Word文档下载推荐.docx_第1页
第1页 / 共10页
c语言编写四则运算Word文档下载推荐.docx_第2页
第2页 / 共10页
c语言编写四则运算Word文档下载推荐.docx_第3页
第3页 / 共10页
c语言编写四则运算Word文档下载推荐.docx_第4页
第4页 / 共10页
c语言编写四则运算Word文档下载推荐.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

c语言编写四则运算Word文档下载推荐.docx

《c语言编写四则运算Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言编写四则运算Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。

c语言编写四则运算Word文档下载推荐.docx

{

printf("

overflow!

\n"

);

return;

}

top=s->

base;

stacksize=STACK_SIZE;

}

boolisEmpty(FStack*s)

if(s->

top==s->

returntrue;

else

returnfalse;

voidPush(FStack*s,floate)

top-s->

base>

=s->

stacksize)

stackisfull!

\nrealloc%d\n"

STACK_INCREMENT);

base=(float*)realloc(s->

base,(s->

stacksize+sizeof(FStack)));

{

}

base+s->

stacksize;

stacksize+=STACK_INCREMENT;

*(s->

top)=e;

(s->

top)++;

floatGetTop(FStack*s)

stackisempty!

return0;

floate=*(s->

top-1);

returne;

voidPop(FStack*s)

top--;

typedefstructCStack//stackofchar

char*base;

char*top;

}CStack;

voidInit(CStack*s)

base=(char*)malloc(STACK_SIZE*sizeof(CStack));

boolisEmpty(CStack*s)

voidPush(CStack*s,inte)

base=(char*)realloc(s->

stacksize+sizeof(CStack)));

charGetTop(CStack*s)

chare=*(s->

voidPop(CStack*s)

boolisOper(charch)

if(ch=='

+'

||ch=='

-'

*'

/'

%'

intPriority(charch)

intp;

switch(ch)

case'

('

:

p=0;

break;

p=1;

p=2;

returnp;

floatCalculate(floatf1,floatf2,charoper)

floatf3;

switch(oper)

f3=f1+f2;

f3=f1-f2;

f3=f1*f2;

f3=(float)((int)f1%(int)f2);

if(f2==0)

\nDevidedbyzero!

"

exit

(1);

f3=f1/f2;

returnf3;

floatStrtoFloat(char*str,int*pos)

floatfRes;

inti=*pos;

intk;

charn[50];

for(k=0;

str[i]>

='

0'

&

&

str[i]<

9'

||str[i]=='

.'

;

i++,k++)

n[k]=str[i];

n[k]='

\0'

*pos=i;

fRes=atof(n);

returnfRes;

boolCheck(char*str)

inti=0;

while(str[i]!

if(str[i]!

str[i]!

)'

(str[i]<

'

||str[i]>

))

i++;

voidmain()

charexp[100];

inti;

floatf,f1,f2;

charoper;

FStackfstack;

CStackcstack;

Init(&

fstack);

cstack);

Theexpressionis:

gets(exp);

Check(exp))

inputerror!

exitnow!

for(i=0;

exp[i]!

=-52;

i++)

isOper(exp[i]))

f=StrtoFloat(exp,&

i);

Push(&

fstack,f);

if(isOper(exp[i]))

isEmpty(&

cstack))

{

while(!

cstack)&

Priority(exp[i])<

=Priority(GetTop(&

cstack)))

{

oper=GetTop(&

Pop(&

f2=GetTop(&

f1=GetTop(&

f=Calculate(f1,f2,oper);

}

cstack,exp[i]);

}

elseif(exp[i]=='

while(GetTop(&

cstack)!

!

\nTheresultis:

%f\n"

GetTop(&

fstack));

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1