PAT乙級1003我要通過(c語言實現)

2021-10-10 08:38:25 字數 1006 閱讀 1756

題目

先來說一下題目所表示的意思吧。

這個題目非常坑爹,我讀了一段時間才懂他在講什麼。a1=p之前的a的數量,a2是pt中間的a的數量,a3是t之後a的數量。a1,a2,a3必須滿足a3=a1*a2的關係才可以。

下面說一下這道題可能會出現的錯誤

1.誤解題目的意思

2.忘記判斷是否有pat之外的字元

3.忽略pt中間沒有a的情況

4.多個p或者多個t的錯誤情況忘記考慮

5.字串的長度不超過100指的是除了』\0』外最多可以有100個字元,所以字串的長度要定義為101,若是小於101,則會出現「段錯誤」的情況

6.scanf讀取待判斷字串的數量之後忘記getchar()來讀取走緩衝區中的回車鍵,這樣會造成第一次使用gets讀取字串時直接獨奏回車的情況

下面附上**

我是通過p,t所在字串的位置來確定a1,a2,a3的數量,再通過與字串的長度進行比較來判斷是否可以通過的。

#include

#include

intpd

(char

* p)

;int

main()

}intpd(

char

* p)

else

if(p[i]

=='t'

)else

if(p[i]

!='a'

) other++

; i++;}

while

(p[i]

!='\0');

if(len != find_t +

1+ find_p *

(find_t - find_p -1)

|| p !=

1|| other !=

0|| t !=

1|| find_t - find_p <=1)

else

printf

("yes\n");

}

PAT乙級 1003 我要通過

考察了分而治之的思想。題目的表述讓我聯想起表示式的bnf描述 乙個數是表示式 在表示式兩邊加個括號也是表示式 兩個表示式相加也是表示式 接下來你全懂了 實際上就是按照題目要求,將檢查指標細分,以求達到庖丁解牛 逐個擊破的效果。源 c include include 得到 答案正確 的條件是 字串中必...

1003 我要通過(PAT 乙級 )C語言

得到 答案正確 的條件是 1 字串中必須僅有 p a t這三種字元,不可以包含其它字元 2 任意形如 xpatx 的字串都可以獲得 答案正確 其中 x 或者是空字串,或者是僅由字母 a 組成的字串 3 如果 apbtc 是正確的,那麼 apbatca 也是正確的,其中 a b c 均或者是空字串,或...

PAT乙級考試 1003 我要通過!

題目 思路錄入資料 由於給出的字串數量不多,建立乙個二維陣列儲存原始的字串,錄入字串時,注意把每行最後的 n替換為 0,方便後續的判斷 再建立乙個陣列儲存結果用於列印。判斷字串是否符合要求 前兩個條件很好理解,這裡不再贅述 對於第三個條件,我們設串中 p 前面的 a 有l個,p 和 t 中間的 a ...