- ベストアンサー
if と配列の組み合わせ
なにやら思いつかなかったのでこちらで相談します。 配列のaと変数bがこんな感じだったとします。 int a[4]={1,3,4,7}; b=6; もしbが配列aのどの数字にも当てはまらないならこうしますよ もしbが配列aのどれかの数字に当てはまるならこうしますよ といったプログラムを作りたいのですが短く処理できる プログラムを思いつきません。(理論演算子を使えば長くなる) どうすれば短く処理できますか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
C++なら、 #include <algorithm> int main(int argc, char** argv) { int a[4] = {1, 3, 4, 7}; int b = 6; if (std::find(a, a + 4, b) == a + 4){ printf("どれにも当てはまらない\n"); } else { printf("どれかに当てはまる\n"); } return 0; } Cなら、 int main(int argc, char** argv) { int a[4] = {1, 3, 4, 7}; int b = 6; int found = 0; int i; for (i = 0; i < 4; i++){ if (a[i] == b){ found = 1; break; } } if (found){ printf("どれかに当てはまる\n"); } else { printf("どれにも当てはまらない\n"); } return 0; }
お礼
無事に文字列でもできました while で見かけた手法だったのですが変数に1を入れての判定はifでもできるんですね
補足
すみません よく考えたらswitchを使えば簡単とか言う答えが来ると思ったのですが 例として書いたのがint 型ではまずかったですね 実際は 文字列での 型で聞きたかったのですが、どうやら心配が杞憂だったようですね Cのほうです 開発可能なパソコンに戻して試してみますね ありがとうございました。