int main(int argc, char **argv) {
    // TODO: Verify that command line arguments are valid.
    if(argc != 2) {
        return 2;
    }
    // TODO: Parse arguments and then call the two helpers in sin_helpers.c
    // to verify the SIN given as a command line argument.
    int sin = strtol(argv[1], NULL, 10);
    int *sin_array = malloc(sizeof(int) * 9);
    int valid_input = populate_array(sin, sin_array);
    int i = 0;
    while (i < 9) {
        printf("%d ", sin_array[i]);
        i++;
    }
    int valid_sin = check_sin(sin_array);

    // return 1 when sin is invalid
    if(valid_input == 1 || valid_sin == 1) {
        return 1;
    }
    // otherwise sin is valid so return 0
    return 0;
}
Your program reads a single command line argument representing a candidate SIN number. Your program then prints one of two messages (followed by a single newline \n character) to standard output : "Valid SIN", if the value given is a valid Canadian SIN number, or "Invalid SIN", if it is invalid.