Условие:
Допишите недостающие части (`...`) в код, приведенный ниже:
#include
struct TStudent {
unsigned char WellFed : 1;
unsigned char OnLection : 1;
unsigned char PassedLab0 : 1;
unsigned char ForgotPassAtHome : 1;
unsigned char DoingThisTaskNow : 1;
unsigned char WatchedNaruto : 1;
unsigned char StudyingIn21212 : 1;
unsigned char UsedToUseDynamicArrays : 1;
};
union TStudentDescription {
unsigned char Flags;
struct TStudent Fields;
};
int IsHappy(union TStudentDescription student) {
// Студент считается счастливым, если
// WellFed == 1
// OnLection == 0;
// PassedLab0 == 1;
// ForgotPassAtHome == 0;
// DoingThisTaskNow == 0;
// WatchedNaruto - не важно
// StudyingIn21212 == 1;
// UsedToUseDynamicArrays == 0;
unsigned char mask1 = ...;
unsigned char mask2 = ...;
return ...; // Здесь допустимо использование только mask1, mask2, student.Flags и битовых операций. Использование операции `==` запрещено.
}
int main()
{
union TStudentDescription description;
description.Flags = 0b11100110;
if (IsHappy(description)) {
printf("Student is happy\n");
} else {
printf("Time to drink some coffee\n");
}
return 0;
}