Untitled

 avatar
unknown
plain_text
a year ago
993 B
5
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