質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

2回答

189閲覧

c言語 IF文演算子

BALDRSKY

総合スコア19

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2017/12/12 02:29

aが0でないまたはbが0でない場合
aとbを足してその合計値が100を超えていた場合
aが10で割り切れる場合
この条件の時のIF文の書き方が分かりません

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答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

archiver

総合スコア1557

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BALDRSKY

2017/12/12 02:57

はい個別の書き方が分かりませんでしたありがとうございます
guest

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
.M.

総合スコア98

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問