電子書籍の厳選無料作品が豊富!

(問題)
二つの整数値を読み込んで、それらの値の差が10以下でなければ、「それらの差は10以下」そうでなければ「それらの差は11以上」と表示するプログラムを作成せよ。ただし、論理OR演算子を用いること。

(自分の解答)
#include <stdio.h>

int main(void)
{
int n1,n2;

printf("2つの整数を入力してください\n");
printf("整数1:"); scanf("%d",&n1);
printf("整数2:"); scanf("%d",&n2);

if ( (n1-n2) <= 10 || (n1-n2) >= 11) { /*ここがわかりません*/
printf("それらの差は10以下です。");
} else {
printf("それらの差は11以上です。");
}
return 0;
}



論理OR演算子の使い方が分かりません。

解答お願いいたします。

A 回答 (7件)

#include <stdio.h>


#include <stdlib.h>

#include <stdio.h>

int main(void)
{
int n1,n2;
int d ;

printf("2つの整数を入力してください\n");
printf("整数1:"); scanf("%d",&n1);
printf("整数2:"); scanf("%d",&n2);

((d = n1 - n2) > 0) || ( d = n2- n1 ) ;

if( d <= 10 ) {
printf("それらの差は10以下です。\n");
} else {
printf("それらの差は11以上です。\n");
}
}


解説はしません。


この問題でやりたいことは
・「差が10以下」と「それ以外」を判定するには、どうしたらいいのか?
・それを || を使う式で表現するにはどうしたらいいのか?
の2点を理解できてるかどうか、だと思います。

まず、「ORを使う」ということを意識せず、仕様通りに動作するプログラムを作れるようになりましょう。
    • good
    • 0

もう答えは出ていますが…問題そのものがおかしくないですか?



> 値の差が10以下でなければ、「それらの差は10以下」

こういう逆のことが書かれていると、つい口出ししたくなります。
    • good
    • 0

>それらの値の差が10以下でなければ、


この表現がヒントになる。

if ((n1-n2>10) || (n2-n1>10)) {
}
else {
}
    • good
    • 0

差を求めるのに


n1-n2
n2-n1
の2つのパターンがあるのはわかりますか?
    • good
    • 0


if ( (n1-n2) <= 10 || (n1-n2) >= 11) {



if ( ( (n1-n2) <= 10 )|| ( (n1-n2) >= 11 ) ) {

に変更で上のほうだと変に動作してしまうかも
    • good
    • 0

え、無理に論理OR演算子使わなきゃダメなの?



もしつかうことになるなら

//ここがわからないの部分だけ修正
if ( (n1-n2) <= 10 || (n1-n2) >= 11) {
if( (n1-n2) <= 10 ){ printf("それらの差は10以下です。"); }
if( (n1-n2) >= 11 ){ printf("それらの差は11以上です。"); }
}

論理OR演算子 は || で

a || b

とかかれてたらaもしくはbならの判定に使うものかな
    • good
    • 0

> それらの値の差が10以下



とは 「n1 - n2 <= 10 'または' n2 - n1 <= 10」 です。
    • good
    • 1

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