c语言简单问题,请大家解答

img


#include 

int main()
{
    int num[100];
    int i;
    for (i = 0; i < 100; i++)
    {
        scanf_s("%c", num[i]);
    }
    int len = sizeof(num) / sizeof(num[0]);
    int temp;
    for (i = 0; i < len; i++)
    {
        if (num[i] >= 0)
        {
            if (num[i] > num[i + 1])
            {
                temp = num[i];
                num[i] = num[i + 1];
                num[i + 1] = temp;
            }
        }
    }
    if (num[0] == 0)
    {
        for (i = 0; i < len; i++)
        {
            if (num[i] != 0)
            {
                temp = num[i];
                num[i] = num[0];
                num[0] = temp;
            }
            break;
        }
    }
    for (i = 0; i < len; i++)
        printf("%d", num[i]);

    return 0;
}

请问为啥不能正常输出呢

scanf_s("%c", &num[i]);
平均每天都有2个人的问题是这个

scanf_s("%d", &num[i])
整型数据用%d输入,并且变量名前面要加&符号取地址
===
另外18行的这段for循环,会导致数组越界,当i=len-1时,num[i+1]是越界访问