请问为什么会没有输出那

img


测试之后发现没有输出,请问这是为什么

身份证号不含X的时候,本身就是一个整数啊,你怎么能用%d输入呢。%d会把身份证号当成一个整数啊,不会一个数字一个数字输入。
逐个数字输入,你要用%c才行


#include<stdio.h>
int main(void)
{
    int xishu[17] = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };
    char s[20]="10X98765432";
    char id[20];
    int sum = 0,i,yushu;
    printf("请输入身份证号:");
    gets(id);
    for (i = 0; i<17; i++)
    {
        sum = sum + (xishu[i] * (id[i] - '0'));
    }
    yushu = sum % 11;
    printf("%c\n", s[yushu]);
    return 0;
}