2016-08-17 4 views
-5

Как написать следующее условие, используя single if else?Как создать логику в if else condition

int a; //a can vary from 8 to 12 
int b = 10; 

a is equal to b 
a is less than b by the margin of 2 
a is greater than b by the margin of 2 

Во всех вышеуказанных случаях должно выполняться условие if. Если маржа больше 2, перейдите в другое условие.

Это условие становится истинным, когда значение а = 7 или 13, которые не желательно

if((a == b) || (a <b-2) || (a > b-2)) 
+6

Как сделать домашнее задание самостоятельно? Что вы пробовали? Где ваш код? Что ** конкретно ** не работает? – Olaf

+0

Я не могу удовлетворить вышеуказанные условия в одном случае, если заявление –

+0

Формулировка требования неясна. Что значит «а меньше, чем на 2 полях»? Существует несколько возможных интерпретаций этого. Первый - это 'a = b-2'. Другая интерпретация - 'a FredK

ответ

2

Что вы ищете здесь, чтобы увидеть, что a и b отличаются не более чем 2. Вы может сделать это следующим образом:

if (abs(a-b) <= 2) 

Это верно, если betwen a разница и b меньше или равно 2.

Если a имеет значение 8, 9, 10, 11 или 12, то приведенное выше значение равно true. Таким образом, это удовлетворяет всем заданным условиям.

+0

'stdlib.h' не обязательно доступна. – Olaf

0

Используйте этот способ

if(a>=8 && a<=10) 
    { 
    if ((a == b) || (a + 2 == b) || (a - 2 == b)) 
    { 
     // write your code here 
    } 
    else{ 
    //code of else part if above condition is not satisfied 
    } 

    }else{ 
    //if value of a is not in range i.e 8 to 10 
    } 
1

Использование функции абсолютного значения abs в stdlib.h

if (abs(a-b) <= 2) 
    do something; 
0

A == B является не обязательны.

if (!((a <= b+2) && (a >= b-2))) // False if "a" is between 8 and 12 
Смежные вопросы