关于代码运转不理想的问题,如何解决?

代码莫名其妙运行出来,而且还得牛客练习题
紧急求解答:
#include <stdio.h>

int main()
{
/*char 变量在内存中存储的是字符对应的 ASCII 码值。
如果以 %c 输出,会根据 ASCII码表转换成对应的字符,如果以 %d 输出,那么还是整数。
所以本题只需以循环并且以%c的形式输出即可
*/
char ch[] = {73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116 , 33};

//求数组长度
int length = sizeof(ch);
int i;
for(i = 0;i < length;i++)
{
    printf("%c", ch[i]);
}

return 0;

}
用VS2022运行后的结果出乎人的意料!

img

有什么问题吗?
73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116 , 33
这些数字是ASCII编码,对应的字符就是
73:I
32: (空格)
99: c
97: a
110: n
32: (空格)
100: d
111: o
32: (空格)
105: i
116: t
33: !