Separate helper functions make a small processing pipeline easier to read.

Parse Pipeline

parse_pipeline.c
#include <stdio.h>

static int parse_digit(char digit) {
    return digit - '0';
}

static int valid_digit(int value) {
    return value >= 0 && value <= 9;
}

static int score_digit(int value) {
    return value * 10;
}

int main(void) {
    char digit = ;
    int value = parse_digit(digit);
    int score = 0;

    if (valid_digit(value)) {
        score = score_digit(value);
    }

    printf("score=%d\n", score);
    return 0;
}
#include <stdio.h>

static int parse_digit(char digit) {
    return digit - '0';
}

static int valid_digit(int value) {
    return value >= 0 && value <= 9;
}

static int score_digit(int value) {
    return value * 10;
}

int main(void) {
    char digit = ;
    int value = parse_digit(digit);
    int score = 0;

    if (valid_digit(value)) {
        score = score_digit(value);
    }

    printf("score=%d\n", score);
    return 0;
}
#include <stdio.h>

static int parse_digit(char digit) {
    return digit - '0';
}

static int valid_digit(int value) {
    return value >= 0 && value <= 9;
}

static int score_digit(int value) {
    return value * 10;
}

int main(void) {
    char digit = ;
    int value = parse_digit(digit);
    int score = 0;

    if (valid_digit(value)) {
        score = score_digit(value);
    }

    printf("score=%d\n", score);
    return 0;
}
pipeline Each function performs one step and passes a value to the next step.
validation step A validation helper can keep bad values from reaching the final calculation.