7 2 符號配對

2021-09-27 13:36:49 字數 2299 閱讀 3483

7-2 符號配對 (20 分)

請編寫程式檢查c語言源程式中下列符號是否配對:/與/、(與)、[與]、。

輸入格式:

輸入為乙個c語言源程式。當讀到某一行中只有乙個句點.和乙個回車的時候,標誌著輸入結束。程式中需要檢查配對的符號不超過100個。

輸出格式:

首先,如果所有符號配對正確,則在第一行中輸出yes,否則輸出no。然後在第二行中指出第乙個不配對的符號:如果缺少左符號,則輸出?-右符號;如果缺少右符號,則輸出左符號-?。

輸入樣例1:

void test()

.輸出樣例1:

no/*-?

輸入樣例2:

void test()].

輸出樣例2:

no?-]

輸入樣例3:

void test()

.輸出樣例3:

yes這個題一看到的時候我想用雙端佇列,那個時候我沒考慮全面,如果說這個錯誤符號在最後面,那麼更難了。基本思路就是遇到前符號就入棧,遇到後符號就檢視棧頂是不是相同,如果棧頂不相同,那麼這個符號和棧頂符號有乙個是錯的。這時候接著判斷棧頂下面那個符號,如果這個符號和當前符號相同,那麼就是棧頂錯了。

下面直接上**,其中踩坑的地方在於

1.一開始就沒有把所有情況想到,以至於我沒有判空,導致第二個例子就過不去。

2.程式編寫過程中,的那個/*,我判斷的時候應該是兩個,這個沒錯,我想要在其中if語句上面多乙個i++,來防止之後不會重新判斷 星號(不知道為什麼csdn這裡打星號是斜體),但是我後面又用了個if語句,還是判斷的與之前的i有關的數,這導致後面直接就全錯了,所以這個下次要注意if else語句的使用,如果想加快 i 的遍歷,那麼改變了 i 之後,後面最好就不要有與之前 i 相關的東西了。

3.最後還有一點就是,pta好像是只判斷你的輸出是什麼,我是直接找出錯誤符號就停止程式了,以至於後面的點都輸入不進去。但是也給過了。

這個**還需要優化。不能那麼多中斷main。。。

#include

#include

#include

#define initsize 50

#define changesize 10

using

namespace std;

struct stack

; stack fuhao;

char index[8]

=',']'

,')'};

void

push

(char a)

*fuhao.top++

=a;}

char

pop(

)bool

isempty

(stack a)

else

return

false;}

char

gettop()

//int getindex(char a)

//}int

main()

for(

int i=

0;str[i]

;i++

)else

if(str[i]

=='/'

&&str[i+1]

=='*'

)else

if(str[i]

==')'

)elseif(

gettop()

=='('

)elseif(

*(fuhao.top-2)

=='('

)else

}else

}else

if(str[i]

==']'

)elseif(

gettop()

=='['

)elseif(

*(fuhao.top-2)

=='['

)else

}else

}else

if(str[i]

=='}'

)elseif(

*(fuhao.top-1)

=='elseif(

*(fuhao.top-2)

=='else

}else

}else

if(str[i]

=='*'

&&str[i+1]

=='/'

)elseif(

gettop()

=='<'

)elseif(

*(fuhao.top-2)

=='<'

)else

}else}}

}}

7 2 符號配對 20分

請編寫程式檢查c語言源程式中下列符號是否配對 與 與 與 輸入為乙個c語言源程式。當讀到某一行中只有乙個句點.和乙個回車的時候,標誌著輸入結束。程式中需要檢查配對的符號不超過100個。首先,如果所有符號配對正確,則在第一行中輸出yes,否則輸出no。然後在第二行中指出第乙個不配對的符號 如果缺少左符...

PAT 符號配對

5 4 符號配對 20分 請編寫程式檢查c語言源程式中下列符號是否配對 與 與 與 輸入為乙個c語言源程式。當讀到某一行中只有乙個句點.和乙個回車的時候,標誌著輸入結束。程式中需要檢查配對的符號不超過100個。首先,如果所有符號配對正確,則在第一行中輸出yes,否則輸出no。然後在第二行中指出第乙個...

2 8 符號配對

請編寫程式檢查c語言源程式中下列符號是否配對 與 與 與 輸入格式 輸入為乙個c語言源程式。當讀到某一行中只有乙個句點.和乙個回車的時候,標誌著輸入結束。程式中需要檢查配對的符號不超過100個。輸出格式 首先,如果所有符號配對正確,則在第一行中輸出yes,否則輸出no。然後在第二行中指出第乙個不配對...