C语言输入身份证号码判断性别

C语言输入身份证号码判断性别,第十七位,奇数是男,偶数是女,为啥显示答案错误百分之五十

img

img

应该是char a[18]

#include <stdio.h>
#include <string.h>
int main()
{
    char a[19] = {0};
    scanf("%s",a);
    while(strlen(a) != 18)
     {
        printf("身份证输入错误!请重新输入:");
        scanf("%s",a);
     }
     if((a[16] - '0')%2==0)
          printf("female");
     else
          printf("male");
     return 0;
}