設(shè)計(jì)原理: 主要是利用了棧的結(jié)構(gòu),在表達(dá)式的輸入過程中實(shí)現(xiàn)對括號(hào)是否匹配的判斷。根據(jù)其括號(hào)的原則:小括號(hào)之中不能含有大括號(hào)或中括號(hào),中括號(hào)中不能含有大括號(hào)。再由緊密性,左邊括號(hào)和右邊括號(hào)是緊密相連的。
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比西工網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式西工網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋西工地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴。
思路是遇到左括號(hào)就入棧,碰到右括號(hào)就判斷棧頂?shù)脑厥欠衿ヅ涞淖罄ㄌ?hào),不是的話就返回false,是的話就彈出棧頂元素,然后繼續(xù)下一個(gè)字符。
你的pop和getpop的參數(shù)e沒玩指針和引用,是不會(huì)帶回值出來的。
];printf(please input:);gets(str);BracketMatch(str);} 這是對所輸入的字符串進(jìn)行括號(hào)匹配,所有的括號(hào)都包括,你可以參考一下,另外這是c語言寫的代碼,你可以適當(dāng)?shù)男薷囊幌隆?。有問題再聯(lián)系。。
當(dāng)棧變空了,說明你的括號(hào)都配對了,也就YES了。如果途中出現(xiàn)不配對的情況,就直接返回NO。
];printf(please input:);gets(str);BracketMatch(str);} 這是對所輸入的字符串進(jìn)行括號(hào)匹配,所有的括號(hào)都包括,你可以參考一下,另外這是c語言寫的代碼,你可以適當(dāng)?shù)男薷囊幌?。。有問題再聯(lián)系。。
可能是網(wǎng)頁代碼受到限制的原因,你的書寫格式很亂。我重新給你整理了一下。多年來用C語言,經(jīng)過多種格式的比較,我一直使用下面這種括號(hào)配對方法,很少出錯(cuò)。經(jīng)過配對,明顯可以看出少了一個(gè)大括號(hào)。
這個(gè)是棧的基本應(yīng)用,網(wǎng)上搜一下,答案一大堆。
你的pop和getpop的參數(shù)e沒玩指針和引用,是不會(huì)帶回值出來的。
{.但無論怎樣,是說花括號(hào)的配對有問題??梢杂锰砑?/* 和 添加 */ 的 方法,把某些程序塊 注解 出去,檢查余留部分,看哪里多了或少了花括號(hào)。頭文件部分也要查,有些頭由于宏配對問題會(huì)造成花括配對錯(cuò)。
設(shè)計(jì)原理: 主要是利用了棧的結(jié)構(gòu),在表達(dá)式的輸入過程中實(shí)現(xiàn)對括號(hào)是否匹配的判斷。根據(jù)其括號(hào)的原則:小括號(hào)之中不能含有大括號(hào)或中括號(hào),中括號(hào)中不能含有大括號(hào)。再由緊密性,左邊括號(hào)和右邊括號(hào)是緊密相連的。
將光標(biāo)移動(dòng)到需要檢測的括號(hào)(如大括號(hào){}、方括號(hào)[]、圓括號(hào)()和尖括號(hào))前面,按Ctrl+]或Ctlr+E組合鍵。如果當(dāng)前有匹配的括號(hào),光標(biāo)就會(huì)跳到匹配的括號(hào)處,否則光標(biāo)不移動(dòng),并且機(jī)箱喇叭還會(huì)發(fā)出警告聲。
c程序設(shè)計(jì)中的括號(hào)匹配問題描述設(shè)某一算術(shù)表達(dá)式中包含圓括號(hào)、方括號(hào)和花括號(hào)三種類型的括號(hào),編寫一個(gè)算法判斷其中的括號(hào)是否匹配。
遇到)或者] ,首先檢測棧是不是為空,如果不為空,在返回棧頂元素,如果匹配,即為“(”或者“[”,就刪除棧頂元素,然后重復(fù)。當(dāng)棧變空了,說明你的括號(hào)都配對了,也就YES了。
yes\n);else printf(no\n);} system(pause);return 0;} 這是程序,當(dāng)輸入星號(hào)*就結(jié)束。不論是否一行只有它。有點(diǎn)不符合題意呃。你可以改改。上面那個(gè)人寫的為單行輸入。且沒有考慮中括號(hào)和大括號(hào)。
這個(gè)是棧的基本應(yīng)用,網(wǎng)上搜一下,答案一大堆。