输出手机后三位数字问题

问题遇到的现象和发生背景
用代码块功能插入代码,请勿粘贴截图
我想要达到的结果

img

img


输出不来结果,不知道错哪里了,这里凑一下字数,呃呃以挖出是

按照题目要求手机号应该是连续输入的一串数字,你用int数组接收的话,只能每次一个数,然后空格输入。
我的思路是:
1,用字符串接收手机号码
2,将后三位通过字符转换为数字存到int数组中
3,组合8+后三位
4,按照你输入的组数,将结果输出到屏幕

    {
        int n, i, j, m, k;
        char str[11] = { 0 };
        int a[11] = { 0 };
        char b[2] = { 0 };
        int N[200] = { 0 };
        while (scanf("%d", &n) != EOF)
        {
            j = 0;
            while (n--)
            {
                memset(str,0x00,sizeof(str));
                scanf("%s", str);
                for (i = 0; i <= 10; i++)
                {
                    b[0] = str[i];
                    b[1] = '\0';
                    a[i] = stoi(b);
                }
                for (m = 0, k = 0, i = 8; i <= 10; i++)
                {
                    k = k + a[i];
                    if (i != 10)
                    {
                        k = k * 10;
                    }
                }
                m = 8000 + k;
                N[j]=m;
                j++;
                continue;
            }
            break;
        }
        
        for (n = 0;n<j; n++)
        {
            printf("%d\n", N[n]);
        }
        
    }