C ++ Loops & amp; Логические выражения

У меня есть задание для вступления в курс Comp Sci в колледже. Нам говорят использовать только петли & Булевы выражения для создания программы.
Вот ссылка на лист назначения непосредственно:

http://cs.saddleback.edu/michele/Teaching/CS1A/Assignments/AS8%20-%20Boolean%20Expressions.pdf

Я работал с кучей утверждений If, Then, Else, пока я снова не прочитал указания и не должен был их изменить.

Я получил часть ‘m’ ‘f’ ‘M’ ‘F’ для работы, но я не могу заставить работать heightOK или weightOK (направления # 2 и # 3).

Пожалуйста, помогите, спасибо!

PS Я новичок в программировании …

Вот что у меня так далеко: `

    char gender;
int weight;
int height;
bool heightOK;
bool weightOK;

cout << "Please enter the candidate’s information (enter ‘X’ to exit).";

cout << "Gender: ";
cin.get(gender);
cin.getline(100 , '\n');

if (gender == 'm' || 'M' || 'f' || 'F')
{

}
else
{
cout << "***** Invalid gender; please enter M or F *****";
}

cout << "Height: ";
cin >> height;

cout << "Weight: ";
cin >> weight;`

0

Решение

Вы можете сделать это без операторов if. Вы должны использовать циклы do-while для каждого входа, чтобы вы зациклились, когда ввод недопустим. Затем вы можете установить переменные bool следующим образом:

heightOK = ((gender == 'm' || gender == 'M') &&
(height > MALE_TOO_SHORT && height < MALE_TOO_TALL));

heightOK = (heightOK || (/*same as above, female version*/));

Вы можете сделать все это в одной строке, но это трудно понять, ИМО. Вы должны быть в состоянии установить вес ОК таким же образом.

РЕДАКТИРОВАТЬ: цикл do-while запрашивает и получает ввод. Затем оператор while проверяет правильность ввода.

do {
cout << "enter gender (m/f)";
cin  >> gender;
} while ( !(gender == 'm' || gender == 'M' || gender == 'f' || gender == 'F') );

Если вы хотите сообщить пользователю, что ввод недопустим, вы можете использовать цикл while после получения ввода в первый раз.

1

Другие решения

Вот выражение, показывающее, что троичный оператор является допустимой булевой функцией по отношению к

(p ∧ q) ∨ (¬p ∧ r)

«(p и q) или ((не p) и r))» или «если p, то q, иначе r»

Смотрите также: http://en.wikipedia.org/wiki/%3F:, http://en.wikipedia.org/wiki/Conditioned_disjunction

Полное раскрытие, я не читал задание. Я только что увидел в вашем посте, что вы не можете использовать заявления «если тогда еще», и подумал, что предложу творческий способ обмана.

0

По вопросам рекламы [email protected]