91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

c語言編譯計算器,加減程序括號

資源截圖

代碼片段和文件信息

/*炒雞計算器簡明實現(xiàn)代碼*/?
#include?
#include?
#include?
#define?MaxSize?50

typedef?struct
{
char?elem[MaxSize];
int?top;
}?SepStack;
typedef?struct
{
double?elem1[MaxSize];
int?top1;
}?SepStack1;??????//一個數(shù)型棧一個字符型棧?


int?prior(char?a)//優(yōu)先級判斷?
{
if(a?==?‘^‘)
return?4;?
????if(a?==?‘+‘?||?a?==?‘-‘)
????????return?2;
????if(a?==?‘*‘?||?a?==?‘/‘)
????????return?3;
????if(a?==?‘=‘)
???? return?1;
????if(a?==?‘(‘)
???? return?0;
}


void?init1(SepStack1*?s)
{
s->top1?=?-1;
}
void?init(SepStack*?s)
{
s->top?=?-1;??????//完成初始化棧工作?
}


void?Push1(SepStack1*?s?double?x)
{
s->top1++;
s->elem1[s->top1]?=?x;
}
void?Push(SepStack*?s?char?x)
{
s->top++;
s->elem[s->top]?=?x;
}???????????????????//數(shù)據(jù)入棧操作函數(shù)?



double?Pop1(SepStack1*?s)
{
double?n?=s->elem1[s->top1--];
return?n;
}
void?Pop(SepStack*?s)
{
s->top--;
}?????????????????//完成彈出數(shù)據(jù)操作?


double?GetTop1(SepStack1*?s)?
{
double?x;
x?=?s->elem1[s->top1];
return?x;
}
char?GetTop(SepStack*?s)?
{
char?x;
x?=?s->elem[s->top];
return?x;
}???????????????//讀棧頂元素
void?GetTop2(SepStack*?s?char*?x)
{
*x?=?s->elem[s->top];
}


int?IsEmpty(SepStack*?s)
{
if(s->top?==?-1)
return?1;
else
return?0;
}??????????????//判斷字符型棧是否為空?


int?Match(char?a?char?b)
{
if(a?==?‘(‘?&&?b?==?‘)‘)
return?1;
else
return?0;?
}



int?PanIS(char?str[]?SepStack?s)
{
int?i;
char??x;
for(i=0;?str[i]?!=?‘=‘;?i++)
{
if(str[i]?==?‘(‘)
Push(&s?str[i]);
else?if(str[i]?==?‘)‘)
{
if(IsEmpty(&s))
break;
else
{
GetTop2(&s?&x);
if(Match(x?str[i]))
Pop(&s);
else
continue;
}
}
else?continue;
}
if(IsEmpty(&s))
return?1;
else
return?0;
}


void?Exchange(SepStack*?s?char?str[]?char?str2[])//str2專門用于存放表達(dá)式用于今后判斷括號是否匹配?
{
int?i?k=0?m=0;
char?a;
scanf(“%c“?&a);
str2[m++]=a;
while(a!=‘=‘)
{
if(a>=‘0‘&&a<=‘9‘||a==‘.‘)//浮點型數(shù)據(jù)特殊考慮?
{
str[k++]=a;
scanf(“%c“?&a);
str2[m++]=a;
if((a<‘0‘||a>‘9‘)&&a!=‘.‘)
str[k++]=‘?‘;
}
else?if(a==‘(‘)
{
Push(s?a);
scanf(“%c“?&a);
str2[m++]=a;
}?
else
{

if(a==‘)‘)
{
while(GetTop(s)!=‘(‘)
{?
str[k++]=GetTop(s);
str[k++]=‘?‘;
Pop(s);
}
Pop(s);
}
else?if(GetTop(s)==‘=‘||GetTop(s)==‘(‘)
Push(s?a);
else?if(prior(a)>prior(GetTop(s)))??//如果讀入運(yùn)算符優(yōu)先級大于棧頂運(yùn)算符優(yōu)先級,?
Push(s?a);?????????????????????//直接入棧?
else?
{
while(prior(a)<=prior(GetTop(s)))?
{
???? str[k++]=GetTop(s);
???? str[k++]=‘?‘;
Pop(s);
}
Push(s?a);
}
scanf(“%c“?&a);
str2[m++]=a;
}
}
while(GetTop(s)!=‘=‘)
{?
str[k++]=GetTop(s);
str[k++]=‘?‘;
Pop(s);
}
str[k]=0;
str2[m]=0;?
}??????????????//將中綴表達(dá)式轉(zhuǎn)換成后綴表達(dá)式并且存入到一個字符

評論

共有 條評論