aが0でないまたはbが0でない場合
aとbを足してその合計値が100を超えていた場合
aが10で割り切れる場合
この条件の時のIF文の書き方が分かりません
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
それぞれ個別の条件の書き方がわからないのでしょうか?
・ aが0でないまたはbが0でない場合
C
1if ( a != 0 || b != 0 )
・ aとbを足してその合計値が100を超えていた場合
C
1if ( (a + b) > 100 )
・ aが10で割り切れる場合
C
1if ( (a % 10) == 0)
です。
それぞれの条件を同時に満たすというのであれば、各条件を&&
で繋げばよいです。
投稿2017/12/12 02:38
総合スコア1557
0
ベストアンサー
artchiverさんに続いて補足です。
数値判定時は、特に、整数(int)か実数(浮動小数点数、float, double)かに注意してください。特に実数の時は==もしくは!=で判定することは推奨されていません。実数を厳密に比較するのは誤差が絡むため難しいからです。0.0かどうかも同様です。ですので、実数変数xが0かどうかを判定する場合は通常
C
1if (-0.001 < x && x < 0.001)
のように限りなく0.0に近いかどうか、というふうに範囲を限定する形で判定します。「C言語 実数 判定」などとgoogle検索すると色々出てきますが通常はmathライブラリのfabs関数(実数の絶対値を求める関数)を使い
C
1#include <math.h> 2... 3 4 if(fabs(x) < 1e-10)
などとします。この1e-10というのは1x10のマイナス10乗(=0.0000000001)という意味です。逆に0でないかどうかを判定するには
C
1if (x < -1e-10 || 1e-10 < x)
あるいは
C
1if (1e-10 < fabs(x))
などとします。なぜ
C
1if (0.0 < fabs(x))
としないのかは、同じ理由で誤差のために理論的計算結果では0.0でもC言語を使っていると1e-10よりも小さく、かつ、0.0より大きい、という答えになる可能性があるためです。
もし正の数ということが条件としてすでに判明しているなら
C
1 if(1e-10 < x)
だけでも構いません。
つまり、まとめますと、
aが0でないまたはbが0でない場合(実数の場合)
は
C
1 if((1e-10 < fabs(a) || (1e-10 < (fabs(b))
となります。
C
1 if(1e-10 < (fabs(a)+(fabs(b))
としても数学的には同じになります。
ご参考までに。
投稿2017/12/12 03:36
編集2017/12/12 05:21総合スコア98
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/12 02:57