Calcula la letra del DNI

Calcula la letra del DNI (español) a partir del número

#include <stdio.h>
main()
    {
    int a, b=0, l;
    char cifra;
    char letras[]="TRWAGMYFPDXBNJZSQVHLCKE\0";
    printf("Introduzca n§ DNI(8 car)  ");
    for (a=0; a<8; a++)
            {
            cifra=getchar();
            b=b * 10 + (cifra - '0');
            }
    l=b - (b / 23 * 23);
    printf("\n NIF %d - %c\n\n",b,letras[l]);

    }