PAT-B1031 如何进行修改将乱码消除?(语言-c语言|开发工具-visualstudio)

题目:
https://pintia.cn/problem-sets/994805260223102976/exam/problems/994805290334011392

以下是我所写的代码:

#include 
int main()
{
    int N, i, j = 0, sum;
    char id[101][19];
    int w[] = { 7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2 };
    char M[] = { '1','0','X','9','8','7','6','5','4','3','2' };
    scanf("%d", &N);
    for (i = 0; i < N; i++)
    {
        scanf("%s", id[i]);
    }
    for (i = 0; i < 17; i++)
    {
        int k = 0;
        for (k = 0, sum = 0; k < 17 && id[i][k] >= '0' && id[i][k] <= '9'; k++)
        {
            sum += (id[i][k] - '0') * w[k];
        }
        if (k == 17 && M[sum % 11] == id[i][17])
            j = 1;
        else
        {
            printf("%s\n", id[i]);
            j = 0;
        }
    }
    if (j == 1)
    {
        printf("All passed");
    }
    return 0;
}

经过编译器测试后:

img

问题在第13行:for (i = 0; i < N; i++) //for (i = 0; i < 17; i++) 这里不是 i < 17