校賽 麵條程式設計 C

2021-08-17 01:57:43 字數 1199 閱讀 2792

題目:

描述 麵條程式語言僅由3種語句組成:print、goto、end

定義如下:

print [string]   :  程式輸出[string],乙個不含空格的字串

goto [number]   :  程式跳轉到行號為[number]的語句執行

end   :  程式結束

編寫乙個該麵條程式語言的直譯器,輸入程式,輸出程式執行結果,若程式不能正常結束(未執行到end語句),輸出error

輸入 一段麵條程式設計程式,由上述語句組合而成,行數不多於100000

輸出 程式執行結果,即程式執行過程中print語句輸出的內容或error

樣例輸入1

print 1

goto 4

goto 2

print ?

end

樣例輸出1

1

?

樣例輸入2

print 1

goto 4

print 3

print 4

樣例輸出2

error

思路:看似很簡單,只要getline然後判斷就行。但是!題目有坑!題目沒有給出什麼時候結束輸入!然後去問了一下學長,學長說是檔案結束。就是,,會自動結束的意思。所以我放棄了getline。用while(cin>>)先輸入前面的print之類的詞,然後如果第乙個單詞是p就輸入乙個字元,把字元放在結構體裡。如果第乙個單詞是g,就輸入乙個數字,也放在結構體裡。結構體中包含乙個字串,用於輸出;兩個整形,用於goto另一行以及判斷是哪乙個麵條程式設計語句;還有乙個邏輯型,用於判斷有沒有goto迴圈(這個我一開始沒有想到,於是一直超時,還以為是輸入的問題),goto迴圈就是第二句到第四句,第四句又重新到第二句。結束這一步後,用乙個n來判斷是否需要輸出語句。假如已經輸出過了error,就不用輸出那些字串了。字串我放在了乙個動態陣列裡,當然也可以用佇列。

**:

#include#include#includeusing namespace std;

struct ss

p[100001];

int main()

if(shuru[0]=='g')

if(shuru[0]=='e')

}int t=1;

int n=0;

while(t>0)

return 0;

}

sdut 3914 校賽 校賽

time limit 1000ms memory limit 65536kb problem description sdut 的校賽是從 2009 年開始的,康納每年看到比賽之後,往往就會喊一聲 ma ji ya ba ku nai 年份的縮寫 比如說 2009 年就會說 ma ji ya ba ...

SDUT 3914 校賽 校賽

time limit 1000ms memory limit 65536kb problem description sdut 的校賽是從 2009 年開始的,康納每年看到比賽之後,往往就會喊一聲 ma ji ya ba ku nai 年份的縮寫 比如說 2009 年就會說 ma ji ya ba ...

2017 4校賽C (模擬鍊錶)

時間限制 1 sec 記憶體限制 128 mb 提交 230 解決 45 提交 狀態 討論版 瑞神要準備考研了,為了複習資料結構,瑞神在某寶上買了一本資料結構得考研輔導資料 考研資料結構 從入門到放棄 從此瑞神開始了愉快的復 zhuang 習 bi 有一天,瑞神找了好多條鍊錶來輔助自己複習,但是他在...