• ベストアンサー

if と配列の組み合わせ

なにやら思いつかなかったのでこちらで相談します。 配列のaと変数bがこんな感じだったとします。 int a[4]={1,3,4,7}; b=6; もしbが配列aのどの数字にも当てはまらないならこうしますよ もしbが配列aのどれかの数字に当てはまるならこうしますよ といったプログラムを作りたいのですが短く処理できる プログラムを思いつきません。(理論演算子を使えば長くなる) どうすれば短く処理できますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • hitomura
  • ベストアンサー率48% (325/664)
回答No.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; }

nanaka2223
質問者

お礼

無事に文字列でもできました while で見かけた手法だったのですが変数に1を入れての判定はifでもできるんですね

nanaka2223
質問者

補足

すみません よく考えたらswitchを使えば簡単とか言う答えが来ると思ったのですが 例として書いたのがint 型ではまずかったですね 実際は 文字列での 型で聞きたかったのですが、どうやら心配が杞憂だったようですね Cのほうです 開発可能なパソコンに戻して試してみますね ありがとうございました。

関連するQ&A