第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于c的編程問題(表達式計算)急!?。。?/h1>

關于c的編程問題(表達式計算)急!?。?!

一天不見i 2017-11-21 16:50:59
這個編程第57行報錯了要怎么改?。??求大神賜教#include<malloc.h> #include<stdio.h> #include<ctype.h>//判斷是否為字符函數(shù)的頭文件? #include<stdlib.h> #define?MAXSIZE?100 typedef?int?boo1; #define?ture?1 #define?false?0 typedef?int?elemtype; char?ch[7]={'+','-','*','/','(',')','#'};//把符號轉(zhuǎn)換成一個字符數(shù)組? int?f1[7]={3,3,5,5,1,6,0};//棧內(nèi)元素優(yōu)先級? int?f2[7]={2,2,4,4,6,1,0};//棧外元素優(yōu)先級? int?n=0; typedef?struct?sqstack {//順序結(jié)構(gòu) ????elemtype?stack[MAXSIZE]; int?top;? }sqstack; //1.把操作的字符轉(zhuǎn)化成相應的字符。? elemtype?cton(char?c) {? switch(c) { case?'+':?return?0;? case?'-':?return?1; case?'*':?return?2; case?'/':?return?3; case?'(':?return?4; case?')':?return?5; default:??return?6; } }? ?//2.按設定比較兩個字符的優(yōu)先級。? ?char?Compare(char?c1,char?c2) ?{ ? int?i1=cton(c1); ? int?i2=cton(c2);//把字符變成數(shù)字? ? if(f1[i1]>f2[i2])??return?'>';//通過原來的設定找到優(yōu)先級 else?if(f1[i1]<f2[i2])??return?'<'; else?return?'='; }//end?Compare //3.進行四則運算,并返回計算結(jié)果。? int?Operate(elemtype?a,elemtype?t,elemtype?b) { int?sum; switch(t) { case?0:?sum=a+b;?break; case?1:?sum=a-b;?break; case?2:?sum=a*b;?break; default:?sum=a/b; } return?sum; ?}? //4.主要的表達式計算函數(shù),返回表達式的計算結(jié)果。? int?EvaluateExpression() ? char?c; ? int?i=0,sum=0; ? int?k=1,j=1;//設置了開關變量? ? elemtype?x,t,a,b; ? sqstack?OPTR,OPND; ? Initstack(&OPTR);//初始化操作符棧 Push(&OPTR,cton('#'));//#符號壓入操作符棧 Initstack(&OPND);//初始化操作數(shù)棧 c=getchar(); while(c!='#'||ch[Gettop(OPTR)]!='#') { if(isdigit(c)) { sum=0; while(isdigit(c))//判斷c是否為數(shù)字? { if(!j)//j用來進行數(shù)字串的轉(zhuǎn)換判斷,j為0轉(zhuǎn)換 { ????sum=sum*10-(c-'0'); }? else?sum=sum*10+(c-'0');//字符c轉(zhuǎn)換成了對應的數(shù)字 ?c=getchar(); }//當前c不為數(shù)字,則把之前的數(shù)字串轉(zhuǎn)化成十進制數(shù)字再壓棧 Push(&OPND,sum); j=1;? } else?if(k) { switch(Compare(ch[Gettop(OPTR)],c)) { case'<':Push(&OPTR,cton(c));//把字符整型化,然后入操作棧 ????????c=getchar(); break; case'=':Pop(&OPTR,&x);//操作符棧頂元素出棧? ????????c=getchar(); break; case'>':Pop(&OPTR,&t);//操作符棧棧頂元素出棧? Pop(&OPND,&b);//操作數(shù)棧棧頂元素出棧 Pop(&OPND,&a);//操作數(shù)棧棧頂元素出棧 Push(&OPND,Operate(a,t,b)); break; ? } } }//endwhile return(Gettop(OPND));? ???//endEvaluateExpression //5.取棧頂元素 elemtype??Gettop(sqstack?s) {? if(s.top==0) { printf("ERROR,underflow\n");?return?0; } else return?s.stack[s.top]; }??? //6.初始化棧 void?Initstack(sqstack*s) { s->top=0; }? //7.出棧 void?Pop(sqstack*s,elemtype*x) { if(s->top==0) printf("ERROR,Underflow!\n"); else { *x=s->stack[s->top]; s->top--; } } //8.入棧 void?Push(sqstack*s,elemtype?x) { if(s->top==MAXSIZE-1) printf("ERROR,Overflow!\n"); else { s->top++; s->stack[s->top]=x; } }//end?Push //9.若S為空棧,則返回TURE,否則返回FALSE bool?StackEmpty(sqstack?S) { if(S.top==0)?return?ture; else?return?false; } //10.主函數(shù)。設定界面的顏色大小,調(diào)用計算模塊函數(shù) main() { int?result; system("color?1f"); system("mode?con:cols=80?lines=35"); printf("************歡迎使用表達式求值小程序************\n\n"); printf("請輸入您的算術表達式(以#號結(jié)束):"); result=EvaluateExpression(); printf("表達式的計算結(jié)果是:%d",result); printf("************感謝您的使用,再見!************\n\n"); // return?0; }
查看完整描述

1 回答

?
最初__

TA貢獻68條經(jīng)驗 獲得超39個贊

很明顯,前面少打了一個左括號。。。。? ?{??

查看完整回答
反對 回復 2017-11-22
  • 1 回答
  • 0 關注
  • 1204 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號