#問題文
文字列Sが与えられます。
Sのそれぞれの文字は英大文字または英小文字です。
Sが次の条件すべてを満たすか判定してください。
Sの先頭の文字は大文字の A である。
Sの先頭から 3文字目と末尾から 2文字目の間(両端含む)に大文字の C がちょうど 1個含まれる。
以上の A, C を除く Sのすべての文字は小文字である。
#制約
4≤|S|≤10(|S|は文字列Sの長さ)Sのそれぞれの文字は英大文字または英小文字である。
とありまして、解説動画をそのまま以下のように真似して打ちました。
#include <bits/stdc++.h> using namespace std; int main(){ string s; cin >> s; if (check(s)){ cout << "AC" << endl; } else { cout << "WA" << endl; } return 0; } bool check(string s){ if(s[0]!='A') return false; int c=0; for (int i=2;i<s.length()-1;++i){ if (s[i]=='C') c++; } if (c!=1) return false; int upper=0; for (int i=0;i<s.length();++i){ if (s[i]>='A'&&s[i]<='Z'){ upper++; } } if (upper!=2) return false; return true; }
すると
./Main.cpp: In function ‘int main()’: ./Main.cpp:8:14: error: ‘check’ was not declared in this scope if (check(s)){ ^
というエラーが出てしまいました。解説PDFの解き方はこれと違うのでこちらの解き方もしっかり理解したいと思い質問させていただきました。エラー内容的に初心者ながらint main()
の中に後半の関数を入れなくてはならない気がするのですがどう改善すればいいかわからないので教えてください。よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/21 01:10