Untitled
unknown
plain_text
a year ago
993 B
16
Indexable
#include <stdio.h>
enum State {
q0q2,
q1q2,
q1q3
};
enum State transition(enum State current, char input) {
switch (current) {
case q0q2:
if (input == '0') return q1q2;
if (input == '1') return q1q3;
break;
case q1q2:
if (input == '0') return q0q2;
if (input == '1') return q1q3;
break;
case q1q3:
if (input == '0') return q1q2;
if (input == '1') return q0q2;
break;
}
return q0q2;
}
int main() {
enum State current = q0q2;
char input[100];
printf("Enter a string (0's and 1's): ");
scanf("%s", input);
for (int i = 0; input[i] != '\0'; ++i) {
current = transition(current, input[i]);
}
if (current == q0q2 || current == q1q2 || current == q1q3) {
printf("Accepted!\n");
} else {
printf("Rejected!\n");
}
return 0;
}
Editor is loading...
Leave a Comment