Bailian2716 全域性變數【字元流】
阿新 • • 發佈:2020-12-25
技術標籤: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;
}