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

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

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

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

Q&A

解決済

3回答

735閲覧

c言語のif文について

sgefueheiffd674

総合スコア19

C

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

0グッド

0クリップ

投稿2021/10/14 06:00

入力した一つの整数が 1 桁の正の整数(1~9)かを判定したい。1~9以外を入力しても〇is one disit positive integer.と表示されてしまいます。

#include <stdio.h> int main() { int x; printf("input an integer: "); scanf("%d", &x); if(1 < x < 9){ printf("%d is one disit positive integer.\n", x); }else{ printf("%d is not one disit positive integer.\n", x); } return 0; }

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

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

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

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

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

guest

回答3

0

if文の中身の論理演算子ですが、

1 <= x <= 9
という記述はできません。

1 <= x && x <= 9
とするといいと思われます。

投稿2021/10/14 06:29

tamedy

総合スコア22

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

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

0

ベストアンサー

基礎からやりましょう

C言語とかでは、0≦変数≦100 とかのようなものはできません。

一応できますが、そのままでは不可能。

とりあえず、ノートかなんかに数直線を書いてみてください。

そして

1 桁の正の整数(1~9)か

を考えてみてください。

0は含みますか? 含みませんね。
1は含みますか? 含みますね。
2は? 含みますね。
3は? 含みますね。
...
9は? 含みますね。
10は? 含みませんね。

と、含まれるかどうかを考えてみてください。

そうすると、「1≦範囲≦9」になるはずです。

でも質問にあるコードではおそらく、1<範囲<9 のように書こうとしているのでしょうけど、
仮にこれが正式だとしても、1と9は含まれません。

なので 1≦範囲≦9 とする。

で、この 1≦範囲≦9 は見方によっては、範囲≧1 と 範囲≦9 の二つに分けられます。

C言語とかでのif文で条件式が複数あり、すべてを満たす(あるいは『いずれかを満たす』)とかのような条件式の組み合わせをやるには論理演算子を使います。

詳しくは「C言語 論理演算子」とかで検索してください。

論理演算子で、この場合使えるのは「かつ」か「または」ですね。

そう、数Aの『集合と論理』のアレです。

ではどちらを使うべきか。

それは真理値表で確認してください。

数直線を思い出してください。

p: 範囲≧1 q: 範囲≦9

としたとき、

p⋀q でしょうか。それともp∨q でしょうか。

これがわかれば後は実装するだけです。

基礎をすっ飛ばしていることが原因です。基礎からやりましょう。

投稿2021/10/14 06:13

BeatStar

総合スコア4958

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

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

0

if(1 < x < 9){

これは、
if((1 < x) < 9){
というふうに解釈されてしまいます

投稿2021/10/14 06:07

y_waiwai

総合スコア87800

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問