A small table can map codes to values without a chain of repeated conditions.

Table Lookup

table_lookup.c
#include <stdio.h>

struct Rate {
    char code;
    int value;
};

int main(void) {
    char code = ;
    struct Rate rates[3] = {{'A', 10}, {'B', 20}, {'C', 30}};
    int result = 0;

    for (int i = 0; i < 3; i++) {
        if (rates[i].code == code) {
            result = rates[i].value;
            break;
        }
    }

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

struct Rate {
    char code;
    int value;
};

int main(void) {
    char code = ;
    struct Rate rates[3] = {{'A', 10}, {'B', 20}, {'C', 30}};
    int result = 0;

    for (int i = 0; i < 3; i++) {
        if (rates[i].code == code) {
            result = rates[i].value;
            break;
        }
    }

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

struct Rate {
    char code;
    int value;
};

int main(void) {
    char code = ;
    struct Rate rates[3] = {{'A', 10}, {'B', 20}, {'C', 30}};
    int result = 0;

    for (int i = 0; i < 3; i++) {
        if (rates[i].code == code) {
            result = rates[i].value;
            break;
        }
    }

    printf("value=%d\n", result);
    return 0;
}
table row Each row stores one code and the value associated with it.
lookup The loop searches rows until the requested code matches.