dポイントプレゼントキャンペーン実施中!

 C++でプログラムを作っています。
 b0~b3どれかが1の時という条件指定と、さらにその上でb0~b3どれも1でなく、かつどれも同じ値でないという条件指定はどのように記述すればよいのですか?
 ちなみに私は次の様にしたのですが、ビルドすると「error C2181: else 文が if と一致しません。」となってしまいました。

if((b[0]=1)||(b[1]=1)||(b[2]=1)||(b[3]=1));{
c[1]=c[1]+1;
}
else(b[0]!=b[1]!=b[2]!=b[3]!=1){
  c[2]=c[2]+1;
         }
 もう一つこちらでもダメでした。

if((b[0]=1)||(b[1]=1)||(b[2]=1)||(b[3]=1));{
c[1]=c[1]+1;
}
else(b[0]!=b[1]!=b[2]!=b[3]){
  c[2]=c[2]+1;
         }

A 回答 (4件)

まず文法がでたらめ。


else(条件)なんてC++の文法はありません。
たぶんelse if(条件)と書きたかったのでは?
あと
b[0]!=b[1]!=b[2]!=b[3]!=1
も式的に問題があるのと条件が的外れしています。elseに来た時点で全て1でない事は保障されるので、同じ値じゃないかチェックすれば良いです。
式的な問題は、b[0]!=b[1]の結果はtrue/falseですのでそれとb[2]を!=で比べると間違いなく意図通りに動作しません。
なので、抽象的に書きますがbo!=b1 and b1!=b2 and b2!=b3 and b0!=b2 ....と全部の条件を書き並べてください。
    • good
    • 0
この回答へのお礼

 ご指導ありがとう御座います。文法間違えと余分な;についてはプログラムから質問に書き写す際にミスをしてしまったようです。

お礼日時:2009/02/03 18:53

//どれかが1


if(b[0]==1 || b[1]==1 || b[2]==1 || b[3]==1)
{

}

//どれも同じ値でない
else if(b[0]!=b[1] && b[0]!=b[2] && b[0]!=b[3] && b[1]!=b[2] && b[1]!=b[3] && b[2]!=b[3])
{

}

//どれも1でなければ
else if(b[0]!=1 && b[1]!=1 && b[2]!=1 && b[3]!=1)
{

}

動作確認していないので間違っていたらすいません。
間違いがあったら誰か指摘してね。
    • good
    • 0
この回答へのお礼

 ご指導ありがとう御座います。やっぱり上手くいきませんでした。別の道を探してみます。

お礼日時:2009/02/03 19:52

条件分岐以前に文法の基礎がめちゃくちゃです



・比較じゃなく代入してる
・余計な;
・比較演算子をただ繋げても数学的な意味とは一致しません
 比較の結果、との比較にしかなりません
    • good
    • 0
この回答へのお礼

ご指導ありがとう御座います。文法間違えと余分な;についてはプログラムから質問に書き写す際にミスをしてしまったようです。

お礼日時:2009/02/03 18:53

とりあえず


if((b[0]=1)||(b[1]=1)||(b[2]=1)||(b[3]=1));{
の、「;」は構文エラーです。

ビルドエラーは基本的に構文エラーですので、文法的な
間違いに着目して探してください。
    • good
    • 0
この回答へのお礼

ご指導ありがとう御座います。文法間違えと余分な;についてはプログラムから質問に書き写す際にミスをしてしまったようです。

お礼日時:2009/02/03 18:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!