1. 程式人生 > 其它 >Bailian2716 全域性變數【字元流】

Bailian2716 全域性變數【字元流】

技術標籤:PKU百練題解(Bailian)

2716:全域性變數
總時間限制: 1000ms 記憶體限制: 65536kB
描述
對一個完整的編譯通過的 C/C++ 程式原始碼檔案,試判斷其中是否定義了全域性變數。

完成此題的難度較大,需要對C/C++的語言規範有一個完整全面的瞭解,才能針對各種情況做出判斷。
輸入
輸入有多行,每行為長度不超過255個字元的原始碼文字。

注意,並非每行文字都對應與一條語句,有些語句可能佔用多行;還有些語句可能在同一行上;還有些行可能是空行,不包含任何語句。

假設程式碼中沒有註釋。
輸出
如果程式碼中定義了全域性變數,輸出“yes”,否則,輸出“no”。注意“yes”和“no”都是小寫。

樣例輸入
#include <stdio.h>

int a, b;

void main()
{
scanf("%d%d", &a, &b);
printf("%d", a + b);
}
樣例輸出
yes
提示
通過gets(s)可讀取每一行,讀完最後一行再呼叫gets(s)時,返回值為NULL,可通過這一點判斷輸入結束。
來源
計算概論05-寒假練習

問題連結Bailian2716 全域性變數
問題簡述:(略)
問題分析:水題不解釋。
程式說明:(略)
參考連結:(略)
題記:(略)

AC的C++語言程式如下:

/* Bailian2716 全域性變數 */
#include <iostream> using namespace std; int main() { string s; int cnt = 0; while(cin >> s) { if(s == "main()") break; if(s == "int" || s == "long" || s == "short" || s == "float" || s == "double"
|| s == "char" || s == "string") cnt++; } while(cin >> s); cout << (cnt ? "yes" : "no") << endl; return 0; }