sudiptoown01.c
Source Code
Printing the code
To print this file, open it on GitHub and click Raw before printing, or use the Download Raw button above and print directly from that page.
c
#include <stdio.h>
int casekey(int door, int window, int motion, int glass) {
int key = (door << 3) | (window << 2) | (motion << 1) | glass;
return key;
}
int main() {
int door, window, motion, glass, key;
char choice;
static const char *action[16] = {
"IDLE", "CHECK WINDOW", "WARN MOTION", "WARN MOTION WINDOW",
"CHECK DOOR", "WARN DOOR WINDOW", "INTRUSION SUSPECTED", "INTRUSION CONFIRMED",
"GLASS ONLY", "DOOR GLASS", "MOTION GLASS", "MOTION WINDOW GLASS",
"DOOR WINDOW", "DOOR WINDOW GLASS", "DOOR MOTION GLASS", "ALL SENSORS"
};
do {
printf("Sensors: Door, Window, Motion, Glass\n");
printf("Enter the state of each sensor in binary (0 or 1): ");
scanf("%d %d %d %d", &door, &window, &motion, &glass);
key = casekey(door, window, motion, glass);
printf("Action: %s\n", action[key]);
printf("Want to continue? (y/n): ");
scanf(" %c", &choice);
printf("\n");
} while (choice == 'y' || choice == 'Y');
return 0;
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33